linux系统基于多进程的并发器设计代码
时间: 2023-09-07 19:03:32 浏览: 42
Linux系统基于多进程的并发器设计代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
void childProcess() {
printf("Child process ID: %d\n", getpid());
printf("Hello from child process!\n");
}
void parentProcess(pid_t pid) {
printf("Parent process ID: %d\n", getpid());
printf("Child process ID: %d\n", pid);
printf("Hello from parent process!\n");
wait(NULL);
}
int main() {
pid_t pid;
pid = fork(); // 创建子进程
if (pid < 0) {
perror("Fork failed");
exit(EXIT_FAILURE);
}
else if (pid == 0) {
// 子进程代码
childProcess();
exit(EXIT_SUCCESS);
}
else {
// 父进程代码
parentProcess(pid);
exit(EXIT_SUCCESS);
}
return 0;
}
```
上述代码通过 `fork()` 系统调用创建了一个子进程,并在子进程中执行 `childProcess()` 函数,父进程则执行 `parentProcess()` 函数。在 `childProcess()` 和 `parentProcess()` 中,我们可以编写具体的子进程和父进程的代码逻辑。
使用 `wait(NULL)` 等待子进程的结束,以确保父进程在子进程结束之前不会退出。这样就实现了基于多进程的并发设计。
在代码执行时,可以观察到父进程和子进程分别输出自己的进程ID,并打印相应的消息。