C-带有触摸命令的execve函数不起作用
我正在尝试通过 execve() 运行 touch 命令,这是我的代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
char * c[2]={"/usr/bin/touch","test.txt"};
execve(c[0],c,NULL);
return 0;
}
但似乎文件没有被触及或日期没有被更新。来人帮帮我。
回答
数组的最后一个元素需要为NULL,这样exec调用才能算出数组的长度。
所以改变
char * c[2]={"/usr/bin/touch","test.txt"};
到
char * c[3]={"/usr/bin/touch","test.txt",NULL};