如何解决C 程序在“fork()”和管道中有问题
嗨,我是 C 语言中亲子交流的初学者。我正在尝试用 C 编程构建一个计算器,它只会从文件中读取数据,使用 fork()
和 {{1} 计算一些计算} 然后确定输出。我能够从文件中读取运算符以及从文件中读取数字,但在 pipe
条件中使用 dup
时遇到问题。 if(fork() == 0)
之上的一切都在工作,但之后的一切都不起作用。我使用输入流 0 读取第一个参数,使用流 3 读取第二个参数并使用标准输出流 1 进行输出。我知道在那之后我只需要设置加法、减法、乘法和除法的条件,然后在我弄清楚之后使用 close(1);
来计算计算,但我无法弄清楚为什么我会遇到这个问题帮助将不胜感激谢谢!这是下面的代码和输入文件。为了程序,我们需要传递文件名作为参数。例如execl
./calc data.txt
解决方法
文件描述符 1 指的是 stdout
。如果您关闭它,您对 printf
的调用将失败,因为它尝试打印到关闭的流。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。