用链表方式创建5个进程
时间: 2024-02-15 22:02:47 浏览: 39
创建5个进程的链表方式可以按照以下步骤进行:
1. 定义进程结构体,包括进程ID和进程名等属性。
2. 创建链表头节点,并将其赋值为空。
3. 循环创建5个进程,每次创建一个进程就将其加入到链表尾部。
4. 创建进程时,先分配空间,并初始化进程ID和进程名等属性,然后将其加入到链表尾部。
5. 每次加入新进程时,需要判断链表是否为空,如果为空,则将新进程设为链表头节点。
6. 如果链表不为空,则将新进程加入到链表尾部。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 进程结构体
typedef struct Process {
int pid; // 进程ID
char name[20]; // 进程名
struct Process *next; // 下一个进程的指针
} Process;
// 创建进程
Process* create_process(int pid, char* name) {
Process *p = (Process*) malloc(sizeof(Process));
p->pid = pid;
strcpy(p->name, name);
p->next = NULL;
return p;
}
int main() {
int i;
Process *head = NULL, *p = NULL, *new_process = NULL;
// 循环创建5个进程,并加入到链表尾部
for (i = 1; i <= 5; i++) {
new_process = create_process(i, "process");
if (head == NULL) {
head = new_process;
} else {
p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = new_process;
}
}
// 遍历链表,打印进程ID和进程名
p = head;
while (p != NULL) {
printf("Process %d: %s\n", p->pid, p->name);
p = p->next;
}
return 0;
}
```
这个示例代码创建了5个进程,每个进程的进程ID都从1到5,进程名都是“process”。程序运行后,会遍历链表,打印出所有进程的进程ID和进程名。