gpt4 book ai didi

c - 如何确保我正在启动的程序将其标准输出写入我打开的 FD?

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:13 25 4
gpt4 key购买 nike

我正在尝试为我的 shell 实现 >< 重定向,但在我的情况下,假设我执行 ls > output.txt,它会创建一个新文件,但不会将其写入文件中。这是我的代码的预览:

    pid = fork();
if (pid == 0){
int i = 0;
for (i=0; args[i]!='\0'; i++){
int fd;
if (strcmp(args[i], ">")==0){

fd = open(args[i+1], O_CREAT|O_TRUNC | O_WRONLY, 0600);
dup2(fd, STDOUT_FILENO);
close(fd);

}
if(strcmp(args[i], "<")==0){

fd = open(args[i+1],O_RDONLY);
dup2(fd, STDOUT_FILENO);
close(fd);
}

最佳答案

试试这个>>而不是>

'>>' 附加在文件末尾

关于c - 如何确保我正在启动的程序将其标准输出写入我打开的 FD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54935191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com