我正在尝试制作一个外壳,当它无法执行命令时,它会显示“执行二进制文件时出错:-nameOfBinary-”。但问题是它总是给我“没有这样的文件或目录”的消息。这是我的代码的一部分:
void handle_SIGINT() {
write(STDOUT_FILENO,line,strlen(line));
printf("\n");
struct sigaction handler;
handler.sa_handler = handle_SIGINT;
sigaction(SIGINT, &handler, NULL);
}
void runcommand(char* argv[]) {
int p =fork();
if(p==0) {
struct sigaction handler;
handler.sa_handler = SIG_IGN;
sigaction(SIGINT, &handler, NULL);
execvp(argv[0],argv);
perror("Error executing binary");
exit(1);
} else {
wait(NULL);
}
}
使用代码,它总是给我消息“执行二进制文件时出错:没有这样的文件或目录”,这接近我想要的!我该如何解决?提前致谢!