c语言创建两个进程实现一个进程用户按键输入,另一个进程接收按键
时间: 2024-03-17 15:47:19 浏览: 105
创建两个进程,一个进程负责等待用户输入按键,另一个进程接收并处理按键输入。可以使用C语言中的进程创建函数`fork()`和进程间通信函数`pipe()`完成。
下面是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main() {
int fd[2]; // 创建管道
pid_t pid; // 进程ID
char buf[1024]; // 存储输入的按键
if(pipe(fd) < 0) { // 创建管道
printf("pipe error!\n");
exit(1);
}
pid = fork(); // 创建子进程
if(pid < 0) {
printf("fork error!\n");
exit(1);
} else if(pid == 0) { // 子进程
close(fd[1]); // 关闭管道写端
read(fd[0], buf, sizeof(buf)); // 从管道读取数据
printf("received key: %s\n", buf);
close(fd[0]); // 关闭管道读端
} else { // 父进程
close(fd[0]); // 关闭管道读端
printf("please input a key: ");
scanf("%s", buf);
write(fd[1], buf, sizeof(buf)); // 写入管道
close(fd[1]); // 关闭管道写端
wait(NULL); // 等待子进程结束
}
return 0;
}
```
在该示例代码中,首先创建了一个管道`fd`,然后通过`fork()`函数创建了一个子进程。父进程负责等待用户输入按键,然后将按键写入管道中。子进程则从管道中读取数据,并处理用户输入的按键。最后,父进程通过`wait()`函数等待子进程执行完毕。
阅读全文