本文共 472 字,大约阅读时间需要 1 分钟。
char* arg[3];char *envp[] = { 0,NULL};arg[0]="mkdir";arg[1]="./user/hello";arg[2]=NULL;if(fork()==0){ execve("/usr/bin/mkdir",arg,envp);} else { return 0; }
Ps: execve()在执行完成后会终止当前进程
所以我们得搞个子进程去执行,才不会影响主进程
文件名—就是你要用的命令对应的文件
例:ls,cd
这些常用的命令都是存在/usr/bin目录下
(当然也可以是其他可执行的文件,不过像gedit这样有GUI程序,C语言不支持,会报错)
arg—命令和需要的参数,并且最后一个参数是NULL,作为结束标志
Ps:那我上面的 mkdir 举例
新建的文件夹默认是在当前目录
如果需要在子目录里新建,则在文件路径那花点心思就行了
像:
./user/hello
envp—用于配置环境变量,一般情况下不用管它
转载地址:http://haiyb.baihongyu.com/