Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        3年前关闭。
                                                                                            
                
        
我想使用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);

10-06 03:13