帮我用C语言写一个进程通讯的程序
时间: 2023-06-03 08:05:44 浏览: 106
好的,以下是一个使用 C 语言进行进程间通讯的示例代码:
```
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#define MAX_BUF 1024
int main() {
int fd[2];
pid_t pid;
char buf[MAX_BUF];
if (pipe(fd) == -1) {
perror("pipe");
return 1;
}
if ((pid = fork()) == -1) {
perror("fork");
return 1;
}
if (pid == 0) {
close(fd[1]);
read(fd[0], buf, MAX_BUF);
printf("Child process received: %s\n", buf);
close(fd[0]);
} else {
close(fd[0]);
strcpy(buf, "Hello from parent process!");
write(fd[1], buf, strlen(buf) + 1);
close(fd[1]);
wait(NULL);
}
return 0;
}
```
这段代码使用 `pipe` 函数创建了一个管道,然后使用 `fork` 函数创建了一个子进程。父进程通过管道向子进程写入数据,子进程从管道读取数据并输出。
希望这段代码对你有所帮助。
阅读全文