在c中使用execvp执行touch

在c中使用execvp执行touch,c,linux,C,Linux,我想使用execvp在c中创建一个文件。该文件的名称在int1变量中。但它不起作用 int int1; sscanf((char*) file_memory,"%d",&int1 ); char* arg_list[] = { "touch", "int1", NULL }; execvp ("touch",arg_list); 您正在创建一个名为int1的文件,因为您编写了一个字符串文本。变量不会在字符串文本中展开。您

我想使用execvp在c中创建一个文件。该文件的名称在int1变量中。但它不起作用

int int1;
sscanf((char*) file_memory,"%d",&int1 );
char* arg_list[] = {
        "touch",
        "int1",
         NULL
        };
execvp ("touch",arg_list);

您正在创建一个名为
int1
的文件,因为您编写了一个字符串文本。变量不会在字符串文本中展开。您需要用整数值填充字符串变量

int int1;
sscanf((char*) file_memory,"%d",&int1 );
char name[20];
snprintf(name, sizeof name, "%d", int1);
char *arg_list[] = {
    "touch",
    name,
    NULL,
};
execvp("touch", arg_list);
“它不工作”从来都不是一个适当的问题描述。请准确描述您的程序的输入、预期行为和实际行为。您可以先检查
execvp
是否成功,如果不成功,则打印
errno