Как я могу записать вывод вызова execve?
Я написал эту простую программу. Я хочу, чтобы выходные данные были зарегистрированы в test.log, как показано ниже. Могу ли я сделать это?
int main(int argc, char **argv)
{
int fd = open("test.log", O_CREAT|O_WRONLY);
char *path[2];
path[0] = "/bin/ls";
path[1] = NULL;
execve((char *)&path[0], &path, NULL);
close(fd);
return 0;
}
1 ответ
Рабочий раствор, руководствуясь Ричи.
int main(int argc, char **argv)
{
int fd = open("test.log", O_CREAT|O_WRONLY, 0600);
char *path[2];
path[0] = "./tes";
path[1] = NULL;
dup2(fd, 1);
dup2(fd, 2);
close(fd);
execve(path[0], (char **)&path, NULL);
return EXIT_FAILURE;
}