system是一个
C/C++的函数。windows操作系统下
system() 函数详解主要是在C语言中的应用,system函数需加
头文件<
stdlib.h>后方可调用。
0=黑色 1=蓝色 2=绿色 3=
湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=亮蓝色 A=亮绿色 B=亮湖蓝色 C=亮红色 D=亮紫色 E=亮黄色 F=亮白色
颜色属性由两个
十六进制数字指定 -- 第一个对应于背景,第二个对应于前景。每个数字
system()会调用fork()产生
子进程,由子进程来调用/bin/sh-c
string来执行参数string
字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间
SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),仅当
命令处理程序可用时,返回
非零值,可以通过这一特征判断在一个给定的操作系统上是否支持system函数(当system函数返回值为0时,表明system函数无效,在UNIX系统中,system函数总是可用的);。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查
errno 来确认执行成功。
在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承
环境变量,通过环境变量可能会造成系统安全的问题。
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/
passwd其中dev是/dev/sda1.
1、system()和
exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程