先上代码
/*
* gcc multiple_thread.c -lpthread -o multiple_thread
*/
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <signal.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>
#define length 10
void thread1(void) {
int i;
for(i=0; i<10; i++) {
printf("thread .. 1\n");
usleep(200000);
}
}
void thread2(void) {
int i;
for(i=0; i<10; i++) {
printf("thread .... 2\n");
usleep(200000);
}
}
void thread3(void* p) {
char *c=(char *)p;
for(int i=0; i<length; i++) {
printf("%s\n", c);
usleep(200000);
}
}
//守护进程
#define TEST_DAEMON 1
void daemon_demo()
{
#if TEST_DAEMON
int pid;
//创建子进程,结束父进程
if(pid = fork())
exit(0);
else if(pid < 0)
exit(1);
//使进程成为新的会话组长和进程组长
setsid();
//禁止进程重新打开控制终端
if(pid = fork())
exit(0);
else if(pid < 0)