system - execute a shell command
#include <stdlib.h>
int system(const char *command);
system的具体实现内部有哪些系统调用?
fork、exec、waitpid
system返回值
command=null,command processor(命令处理器)可获得时,返回值非0fork或者waitpid返回错误值是EINTR以外的错误值,system返回-1,并且设置errno- 如果
exec失败,意味着shell不能只行,返回值类似于shell执行exit(127) - 成功执行:返回值是
shell的中止状态
使用system的优势!
相对于直接调用fork和exec,system能够处理error和处理signal。
绝对不要在set-user-ID、set-group-ID程序里调用system.可以直接使用fork和exec
这样做会产生安全漏洞
本文解析了C语言中的system函数,详细介绍了其内部实现机制,包括fork、exec和waitpid等系统调用的过程。同时讨论了system函数的返回值含义及其优势,并提醒开发者在特定环境下使用时应注意的安全问题。
602

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



