【发布时间】:2011-07-05 22:38:29
【问题描述】:
这涉及进程间通信中的未命名管道。 我有一个管道,一个进程在其中存储一个值,另一个进程想要读取这个数值,它是整数或长整数。
这里很好地描述了http://tldp.org/LDP/lpg/node11.html 如何在 C 中创建管道。我的问题是如何从管道中读取 long 或 int。
摘自上述页面:
/* Read in a string from the pipe */
int nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
printf("Received string: %s", readbuffer);
好吧,在一般情况下,我不知道如何在 C 中处理管道(它就像一个文件?)以及如何从中读取字符串以外的数据。
【问题讨论】:
-
在 Unix 上,everything is a file.
-
可能要补充:我想只用printf("%d",intnum)发送,所以子进程的标准输入应该传送到这个管道。我应该添加一个换行符吗?比如 printf("%d\n",intnum) ---很容易看出我并没有真正理解 c 或 c++ 中的输入和输出。任何建议或阅读建议表示赞赏....另外,像 3867 这样的 int 的大小是多少?我猜是字节......也许是 4?