Linux下应用程序中执行系统命令
2016-09-20 09:25
232 查看
想要在程序运行中执行一个驱动ko文件加载的动作,找到了system函数。该函数的详细解释如下:
system(执行shell 命令)
相关函数
fork,execve,waitpid,popen
表头文件
#i nclude<stdlib.h>
定义函数
int system(const char * string);
函数说明
system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。
如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
附加说明
在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
system(执行shell 命令)
相关函数
fork,execve,waitpid,popen
表头文件
#i nclude<stdlib.h>
定义函数
int system(const char * string);
函数说明
system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。
如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
附加说明
在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
相关文章推荐
- linux系统中shell中执行命令是报:bash: ifconfig: command not found错误的解决办法
- 作为一个linux系统运维师必须掌握的定期任务执行命令cront
- python2.7执行Linux系统命令
- Python执行Linux系统命令的4种方法
- 命令行进入android系统里执行linux命令的方法——busybox
- PHP执行linux系统命令的常用函数使用说明
- cron命令————是linux系统下一个自动执行指定任务的程序
- java应用程序远程登录linux并执行其命令(ssh jar包)
- PHP执行linux系统命令
- Python执行Linux系统命令的4种方法
- linux(ubuntu 10.10) 64位系统 gcc编译(c)成32位(静态)可执行应用程序的方法
- 通过Java语言,执行Linux命令并获得反馈数据。--适用于Android系统
- PHP执行linux系统命令的几个基本函数
- Java调用linux系统shell执行命令
- [fw]Linux系统使用time计算命令执行的时间
- linux纪录系统用户执行过的命令
- PHP执行linux系统命令
- 在linux应用程序使用system函数执行简单的shell交互命令的方法
- Linux的系统调用、网络连接状态、磁盘I/O;可疑行为监控/日志收集、SHELL命令执行流程
- Java调用执行Linux系统命令