System 函数|学习笔记

简介: 快速学习 System 函数

开发者学堂课程【物联网开发- 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.

image.gif之后也可以传其他命令,比如在system(“pwd”)

效果如下:

会打印当前的目录页,这个system函数就是传一个命令进去帮助执行命令的image.gif

相关文章
|
小程序 Unix Shell
system()函数
system()函数
100 0
|
安全 Java
灵魂拷问:你真的理解System.out.println()打印原理吗?
灵魂拷问:你真的理解System.out.println()打印原理吗?
135 0
System.exit(0)和System.exit(1)区别
System.exit(0)和System.exit(1)区别
|
算法 Java
System类
System类
60 0
C. Registration system
C. Registration system
59 0
|
物联网 Shell Linux
System 函数的实现|学习笔记
快速学习 System 函数的实现
System 函数的实现|学习笔记
ZCMU - 1992: Swiss-system tournament
ZCMU - 1992: Swiss-system tournament
115 0
|
Java 开发者
System 类|学习笔记
快速学习 System 类
130 0
|
Java
java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err
本文关键词: java 标准输出与标准错误    out与 err 区别 用法 联系  java中的out与err区别  System.out和System.err的区别 System.out.println和System.
1534 0
|
JavaScript Linux 前端开发