main函数中的return
编写一个简单的C程序如下:
#include <stdio.h>
int main(int argv,char* argc[])
{
printf("hello world\n");
return 0;
}
在一般情况下我们总是习惯写return 0;那么这究竟是代表着什么呢。
如果将return 0; 修改为return 1;那么在编译并运行程序之后使用echo $?命令得到的结果为1。
而如果我的命令是这样的:命令1 && 命令2那么只有在前一个正确执行并且其对应的echo $?为0,下一个命令才会执行。
main函数中的参数
很多时候我们在写主函数时直接写作int main()…
那么完整写法中的参数究竟对应什么含义呢?编写如下程序
#include <stdio.h>
int main(int argv,char* argc[])
{
printf("argv is %d\n",argv);
int i;
for(i=0;i<argv;i++){
printf("argc[%d] is %s\n",i,argc[i]);
}
return 0;
}
编译生成m.out,若我执行该可执行文件的命令为:./m.out -l -a则得到的结果为:

若命令为./m.out -l -a sda sfdf,则得到的结果为:

由此,便可清楚地看出参数的含义。
Linux的标准输入流、标准输出流、标准错误流
标准输入流——stdin(键盘);标准输出流——stdout(显示器);标准错误流——stderr
通过如下代码更深刻的体会,可以看出我们习惯用的printf();scanf();其实是封装后的函数
#include <stdio.h>
int main()
{
//printf("please input the value a:\n");
fprintf(stdout,"please input the value a:\n");
int a;
//scanf("%d",&a);
fscanf(stdin,"%d",&a);
if(a<0){
fprintf(stderr,"the value must > 0");
return 1;
}
return 0;
}
重定向
输出重定向符号 >> 或 > (覆盖原内容)
输入重定向符号 <
管道
符号为“|”,常结合grep(文本搜索命令使用)
例如ls /etc/ | grep ab 即实现了ls /etc/的输出作为grep的输入,并在其中搜索含ab的部分。
本文深入探讨了C语言中main函数的内部工作原理,包括return语句的意义、参数的使用,以及如何通过标准输入流、标准输出流和标准错误流进行数据交互。同时,文章还介绍了重定向和管道的概念及其在Linux环境下的应用。
3755

被折叠的 条评论
为什么被折叠?



