c - 两兄弟怎么联系?

标签 c linux fork pipe

在C语言中:

我有一个父亲,他通过 fork() 在一个循环中生了两个儿子,我希望每个儿子都拥有(在 pid_t 类型)他兄弟的进程 ID。

我尝试通过管道执行此操作,但没有成功。 你知道我该怎么做吗?

我通过 (write(pos[1],getpid(),sizeof(pid_t)) 做到了这一点(这个儿子将他的 pid 发送给他的兄弟) 但它不起作用...

谢谢!

最佳答案

Write 需要一个指向要写入的数据的指针。 getpid 返回进程 ID,而不是指向进程 ID 的指针。您需要将 getpid 的返回值存储在变量中:

pid_t pid = getpid();
write(pos[1], &pid, sizeof(pid_t);

我假设 pos[1] 保存管道的文件描述符到同级。

关于c - 两兄弟怎么联系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140354/

相关文章:

char *cQuery 追加字符串

linux:提交给 sge 的作业卡在 'dt' 状态

linux - syslog-ng 多个目的地

linux - 使用expect后发送命令到远程机器

c - fork 后,全局变量是否共享?

c - 让子进程等待另一个for循环

c - 如何在 gcc 中使用 brk()/sbrk()

c - 多个源文件的一个标题?

c - 如何将这个汇编代码转换为内部代码?

c++ - 到 system() 还是 fork()/exec()?