当前位置: 技术问答>linux和unix
linux c进程互斥
来源: 互联网 发布时间:2017-02-16
本文导语: 如何实现,在文件读一行然后创建一个进程来处理,不过每次都是等前面的处理在处理,可以提前读入,并且没处理的进程可以阻塞。 int main() { FILE *srcfp , *destfp ; int num = 0 ; ///add up numbers of ...
如何实现,在文件读一行然后创建一个进程来处理,不过每次都是等前面的处理在处理,可以提前读入,并且没处理的进程可以阻塞。
int main()
{
FILE *srcfp , *destfp ;
int num = 0 ; ///add up numbers of rows
char buffer[ MAXSIZE] ;
pid_t pid ;
// pthread_mutex_t mutex ;
void sort(char *buf) ;
if((srcfp = fopen("../linux/srcfile" , "r")) == NULL)
{
printf("open srcfile error!n") ;
exit(1) ;
}
if((destfp = fopen("../linux/destfile" , "w+")) == NULL)
{
printf("open or create destfile error!n") ;
exit(1) ;
}
// pthread_mutex_init(&mutex , NULL) ;
while(fgets(buffer , MAXSIZE , srcfp ) != 0)
{
//现在想对每次读入的数据创建一个线程(进程)来处理由子进程来处理
pid = fork() ;
if(pid > 0 )
{
//父进程,不处理
sleep(1) ;
/* if (waitpid(pid, NULL, 0)
int main()
{
FILE *srcfp , *destfp ;
int num = 0 ; ///add up numbers of rows
char buffer[ MAXSIZE] ;
pid_t pid ;
// pthread_mutex_t mutex ;
void sort(char *buf) ;
if((srcfp = fopen("../linux/srcfile" , "r")) == NULL)
{
printf("open srcfile error!n") ;
exit(1) ;
}
if((destfp = fopen("../linux/destfile" , "w+")) == NULL)
{
printf("open or create destfile error!n") ;
exit(1) ;
}
// pthread_mutex_init(&mutex , NULL) ;
while(fgets(buffer , MAXSIZE , srcfp ) != 0)
{
//现在想对每次读入的数据创建一个线程(进程)来处理由子进程来处理
pid = fork() ;
if(pid > 0 )
{
//父进程,不处理
sleep(1) ;
/* if (waitpid(pid, NULL, 0)