资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

初识C程序与Linux交互

Linux下程序的返回值

要开发能在Linux下运行的C程序工具,对C程序与Linux的基本交互方式的认识是必不可少的。

业务包括:企业网站建设、手机网站制作商城开发、网站营销推广等服务,并且涵盖主机域名、网络空间、云服务器、等互联网基础服务;成都创新互联公司联建站以互联网的创新理念,成熟完善的建站体系,开拓进取的精神,专业的解决方案和顾问咨询服务,帮助客户在互联网时代提升形象、把握商机、实现价值,提高企业的核心竞争力。

首先需要了解到,在Linux终端中,程序的运行都会有一个返回值,若该返回值是0,则代表该程序运行成功,若返回值是其他数值,则表示该程序的运行出错了,而这个数值一般是代表其错误码。

使用echo $?命令可以查看上一条命令执行后返回的值。

ls
cworkspace  Documents  Music     Public     Videos
Desktop     Downloads  Pictures  Templates
echo $?
0

另外还需要了解到的是 && 的使用:

命令一 && 命令二

只有当命令一成功运行了,即返回值为0的时候,命令二才会被执行。因此这也是判断命令执行是否成功的一种方式。

C程序的返回值

一般情况下,我们在编写C的main函数的时候,都习惯在结尾返回一个0。其实这也是为了表示程序的成功运行,也就是说,如果程序运行有错,我们可以返回除了0以外的其他数值。

C的返回值就是C程序与Linux进行交互的方式之一。

当我们对C程序成功编译后,得到了可执行程序,执行该可执行程序会得到一个返回值,可以使用以上方式进行查看。

实验如下:

创建一个C程序命名为main.c:

#include 

int main()
{
   printf("successful\n");
   return 0;
}

编译执行并列出目录下的文件:


gcc main.c -o main.out && ./main.out && ls

执行结果:

successfulmain.c  main.out

修改main.c代码:


#include

int main()
{
   printf("failed\n");
   return 1;
}

使用同样的命令执行:


gcc main.c -o main.out && ./main.out && ls

结果:

failed

显然,由于返回值为1,因此ls命令没有被执行。

C程序 main() 函数的参数

事实上,C的入口函数main的完×××式是有两个参数的:


int main(int argv, char* argc[])
{
return 0;
}

其中,第一个参数argv表示的是执行该程序时传入的参数个数,第二个参数则保存了执行该程序时传入的参数。

例如,将main.c修改如下:


#include

int main(int argv, char* argc[])
{
   printf("argv is %d\n", argv);
   int i;
   for(i=0; i        printf("argc[%d] is %s\n", i, argc[i]);
   }
   return 0;
}

执行:


gcc main.c -o main.out && ./main.out && ls

结果:

argv is 1argc[0] is ./main.outmain.c  main.out

显然,程序成功执行,传入的参数有一个,即执行可执行文件main.out的命令。

此时,若随意传入几个参数:


./main.out second third && ls

结果:

argv is 3argc[0] is ./main.outargc[1] is secondargc[2] is thirdmain.c  main.out

总结

在Linux下,程序的运行一般都会有一个返回值,返回0则说明该程序运行成功,可以使用echo $?命令查看,或使用&&验证。因此,C程序可以使用返回值与Linux交互。另外,C程序的main函数的完整原型是int main(int argv, char* argc[]),可以用来接收对C程序传入的参数。

了解这些知识是使用C开发Linux小工具的基础。


网页名称:初识C程序与Linux交互
网站地址:http://www.cdkjz.cn/article/jsdcgj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220