- 论坛徽章:
- 0
|
管道符两边的程序用什么方式进行进程间通信的?
- 事实上,只要具有同一个祖宗就可以通信。shell就是做了一个中间人,把一个孩子的话,传给了另外一个孩子
- 大体上的代码,具有这样的特点
- #include <stdio.h>
- #define EXIT(sts) \
- {do \
- exit((fprintf(stderr, "file %s, line %d faital\n", \
- __FILE__, __LINE__), (sts)); \
- while (0);}
- int
- pro_msg(void)
- {
- FILE * fpr = NULL, * fpw = NULL;
- char buf[1024 + 1];
- if (NULL == (fpr = popen(cmd1, "r"))
- || NULL == (fpw = popen(cmd2, "w")))
- EXIT(-1);
- while (NULL != fgets(buf, sizeof buf - 1, fpr))
- fprintf(fpw, "%s", buf);
- fpr != NULL ? (pclose(fpr), fpr = NULL) : NULL;
- fpw != NULL ? (pclose(fpw), fpw = NULL) : NULL;
- return __OK;
- }
复制代码 |
|