c 交替打印a和b

使用系统调用fork()

#include <stdio.h>
#include <unistd.h>

#define N	20

int main(int argc, char * argv[])
{
        int n = N;
	int pid = fork();
	if (pid == 0) {
		while (n--) printf("A"); // 子进程打印A
		return 0;
	}
	else {
		while (n--) printf("B"); // 父进程打印B
	}
	// 父进程回收子进程
	if (pid != wait(NULL)) {
		printf("error child\n");
	}
	return 0;
}

使用c函数库

#include <stdio.h>
#include <pthread.h>
fa() {
	while(1)
		printf("A");
}
fb() {
	while(1)
		printf("B");
}

int main() {
	pthread_t pida, pidb;
	pthread_create(&pida, 0, fa, 0);
	pthread_create(&pidb, 0, fb, 0);
	printf("%ld %ld\n", (long)pida, (long)pidb);
	pthread_exit(0);
}
posted @ 2022-11-03 13:30  zkx98  阅读(46)  评论(0编辑  收藏  举报