开发者学堂课程【物联网开发- Linux 高级程序设计全套视频:System 函数】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/660/detail/11004
System 函数
System 函数
#include<stdio.h>
int system (const char *command);
功能:
System会调用fork函数产生子进程,子进程调用exec启动/bin/sh -c string 来执行参数string字符串代表的命令,此命令执行完后返回原调用进程。
参数:
要执行的命令的字符串
返回值:
如果command为NULL,则system()函数返回非0 ,一般为1.
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1.
注意:
System调用成功后会返回执行shell命令后的返回值,其返回值可能为1、127,也可能为-1,故最好应该检查errno来确认执行成功。
代码示例:
在这个程序中定义了一个status的变量,并且接受system的返回值,system里面有一个命令。System里面就会创建一个子进程,子进程中有个sh,通过sh来解析这个命令。
如果传到了则返回值为0;若exdec启动面向fa返回的时候值为127.所以需要判断是否为正常结束,若正常结束则会执行正常结束的语句。
#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
Int main(int argc,char *argv[])
{
int status;
status=system(“ls -alh”);
If (WIFEXITED(status))
{printf(“the exit status is %d\n”,status);
}
else
{ printf(“abnormal exit \n”);
}
return 0;
}
运行结果:
可以执行返回值为0.
之后也可以传其他命令,比如在system(“pwd”)
效果如下:
会打印当前的目录页,这个system函数就是传一个命令进去帮助执行命令的