怎么在linux中使用system函数

2022年 10月 16日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

在本期中,本站将为您带来关于如何在linux中使用系统功能的信息。文章内容丰富,从专业角度分析叙述。看完这篇文章,希望你能有所收获。

系统(执行外壳命令)

相关函数

fork,execve,waitpid,popen

头文件

# i ncludestdlib.h

定义函数

int系统(const char * string);

功能描述

System()将调用fork()生成子进程,子进程调用/bin/sh-c字符串执行参数字符串表示的命令。该命令执行后,将返回到最初调用的进程。在调用system()时,SIGCHLD信号被暂时挂起,SIGINT和SIGQUIT信号被忽略。返回值

=-1:出现错误

=0:呼叫成功,但未出现子进程

0:成功退出子进程的id

如果system()调用/bin/sh失败,则返回127,其他失败原因返回-1。如果参数字符串是空指针,则返回非零值。

如果system()调用成功,执行shell命令后会返回返回值,但是这个返回值也可能是system()调用to /bin/sh失败返回的127,所以最好再次检查errno,确认执行成功。

附加信息

在使用SUID/SGID权限编写程序时,不要使用system().system()将继承环境变量,这可能会导致系统安全问题。

模型

# i ncludestdlib.h

main()

{

system(" ls-al/etc/passwd/etc/shadow ");

}执行结果:

-rw-r - r - 1根705 Sep 3 13 :52 /etc/passwd

-r-1 root root root 572 Sep 2 15 :34/etc/shado例2:

char tmp[];

sprintf(tmp,'/bin/mount -t vfat %s /mnt/usb ',dev);

系统(tmp);

其中dev为/dev/sda1。

以上是本站分享的linux中如何使用系统功能,如有类似疑惑,请参考以上分析了解。如果你想了解更多,请关注本站

腾讯云正在大促:点击 https://2bcd.com/go/tx/进入最新活动页】领取无门槛代金券,附云服务器价格表,2核2G4M轻量应用服务器99元1年,新老用户都可以买,可以享受1次续费99元一年、135元15个月、三年560元,MySQL云数据库59元1年起,2核2G3M配置82元1年,2核4G5M配置188元一年、3年900元,4核8G12M轻量服务器880元15个月,8核16G配置1890元15个月,更多16核32G28M带宽和云服务器CVM标准型S5、GPU服务器、CVM标准型SA2租用优惠价格如下,可以 点此进入最新活动页 查看当前最新的优惠券和活动信息。还可以领下10元无门槛代金券:点此直达 阿里云限量超级红包:点击领取】5亿上云补贴和2088元满减代金券,阿里云服务器租用费用最新价格表【点击了解】,最便宜轻量应用服务器2核2G3M带宽82元1年,ECS云服务器2核2G3M带宽99元一年,ECS u1实例2核4G5M带宽优惠价格199元一年,香港30M带宽轻量服务器24元1个月、288元一年,4核8G服务器706元一年,ECS云服务器4核16G10M带宽30元1个月、90元3个月,云服务器8核32G10M带宽109元1个月、327元3个月。阿里云产品最高降价55%,点击 https://2bcd.com/go/aliyun/ 进入最新活动页了解。 腾讯云续费贵,一次性买3年/5年,免得续费贵。3年轻量 2核2G 4M 560元;3年轻量 2核4G 5M 3年900元,活动入口:点击前往(下拉到“爆品专区”即可看到)。 老用户享新人优惠的方法:用Qq登录、1人可注册3个新账号/用家人朋友的身份注册新号(点击注册新账号)。
小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: