28 lines
599 B
C
28 lines
599 B
C
#include <fcntl.h>
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
|
|
int main() {
|
|
// 打开输出文件
|
|
int fd = open("output.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
|
|
|
// 保存原始的标准输出
|
|
int stdout_copy = dup(STDOUT_FILENO);
|
|
|
|
// 复制文件描述符
|
|
dup2(fd, STDOUT_FILENO);
|
|
|
|
// 关闭原始的文件描述符
|
|
close(fd);
|
|
|
|
// 恢复标准输出
|
|
dup2(stdout_copy, STDOUT_FILENO);
|
|
|
|
char *const argv[] = {"ls", "--color=always", "--l", NULL};
|
|
extern char **environ;
|
|
|
|
execve("/usr/bin/ls", argv, environ);
|
|
|
|
return 0;
|
|
}
|