当我execvp
使用命令及其参数调用时,有时该命令是不合法的。
例如,如果我使用分叉的SON进程在我的 shell(bash shell)中执行此操作:
$ ls ffdfdfd
那么输出是:
$ ls: cannot access ffdfdfd: No such file or directory
现在,我想将确切的消息传递给文件。我试过perror
这样:
void directErrors(char * arg)
{
perror(arg); // execute the problem to screen
// now execute the problem to file
FILE* myFile = fopen("errors.log", "a");
if(myFile == NULL)
{
perror("fopen");
exit(-1);
}
fprintf(myFile, "%s: %s\n", arg, strerror(errno));
fclose(myFile);
}
但它所做的只是写该命令X
失败。
如何指导execvp
调用后得到的确切输出?
在我的代码中,我execvp
这样调用:
executeCurrentCommand = execvp(*(arg)[0], *arg);