C - 带有触摸命令的 execve 函数不起作用

C - execve function with touch command not working

我正在尝试 运行 通过 execve() 触摸命令,这是我的代码:

#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};

你也可以使用system();功能 只需将您的命令行放在参数中,例如:

system("touch test.txt");

或者您也可以将 fopen 与标志“a”一起使用,例如:

FILE *fp = fopen("test.txt", "a");

标记“a”打开作为参数传递的文件(在我们的例子中是“test.txt”,如果它不存在,则创建它)

人机系统:http://manpagesfr.free.fr/man/man3/system.3.html

男朋友:http://manpagesfr.free.fr/man/man3/fopen.3.html

祝你有个愉快的一天!