c - 这两个命令行有什么区别? (段错误)

标签 c linux ubuntu segmentation-fault shared-memory

我写了一个映射到共享内存位置的代码,这样第一个程序打开一个共享内存块并在其中存储一些数据。第二个程序读取共享数据。

这两个命令行有什么区别:

1.

 if(argc<2)
 {
     printf("USAGE:%s text-to-share\n",argv[0]);
 }

如果我在没有第二个参数的情况下运行这段代码,它会给我一个段错误。 但是,当我输入一些数据时它工作正常。

2.

 if(argc<2)
    return printf("USAGE:%s text-to-share\n",argv[0]);

这个符合我的目的。

但我不明白两者之间的区别。 我是新手。对我来说两者是一样的,因为理想情况下它们应该有相同的输出。 请帮忙!

最佳答案

两者显然相同:

printf("USAGE:%s text-to-share\n",argv[0]);        // From example 1
return printf("USAGE:%s text-to-share\n",argv[0]); // From example 2

第二行有一些第一行没有的东西:return 语句。

关于c - 这两个命令行有什么区别? (段错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3682330/

相关文章:

c - C 中的参数变量

c - Redland RDF 库 : why does parsing model from Turtle without base URI cause error?

C、薪资提成

linux - 在linux中预留物理地址空间

node.js - 错误 : libnode. so.64:无法打开共享对象文件:没有这样的文件或目录 - Docker 容器

mysql - 在ubuntu中 Sequelize

c - 我什么时候应该在 sqrtl 上使用 hypot?

linux - 在 gnuplot 中将 y 轴分成三部分

python - 在 python 中中断 omxplayer 播放

linux - DHClient 覆盖更新时间