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
祝你有个愉快的一天!
我正在尝试 运行 通过 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
祝你有个愉快的一天!