Linux下有很多创建子线程的函数,比如fork, vfork, clone,pthread_create,kernel_thread等,当然用的最多的是pthread_create函数。本文章不打算仔细比较这几个函数之间的区别,只讲我在编程过程中遇到的一个小问题:fork创建子线程的通信问题。
先上代码:
/* funtion:muti-thread commutation test
*date:2016-11-19
*author:HYT
*email:501930128@qq.com
*/
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <pthread.h>
void *thread_to_process();
void handler(void);
int g_somevar=0;
int main(int argc, char **argv)
{
pthread_t thread;
int thread_fd=0;
memset(&thread, 0, sizeof(thread));
if((thread_fd = pthread_create(&thread, NULL, thread_to_process, NULL)) != 0)
printf("create thread_to_process error!\n");
/*等待线程结束*/
if(thread !=0) { //comment4
pthread_join(thread, NU