菜鸟的学习之旅-APUE多线程小例子(1)
来源:互联网 发布:淘宝上拍卖的茅台酒 编辑:程序博客网 时间:2024/05/24 01:48
子线程读取文件-父线程进行其它工作
#include <stdio.h> // printf()#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> // open()#include <string.h> // strcpy()#include <unistd.h> // fork()int main(int ac, char* av[]){ int fd; // 文件描述符 char fn[1024]; // 文件名称 char buf[1024]; // 文件内容 // 参数个数 if(ac <= 1) { printf("please input the file name!\n"); return; } // 子线程读取文件 pid_t pid; if( (pid = fork()) < 0 ) { printf("create fork failed!\n"); return; } else if( pid == 0) { while(1) { printf("child!\n"); strcpy(fn, av[1]); printf("file = %s\n", fn); fd = open(fn, O_RDONLY); printf("fd = %d\n", fd); int size = read(fd, buf, sizeof(buf)); printf("size = %d\n", size); printf("%s\n", buf); close(fd); sleep(3); } } else { while(1) { printf("parent!\n"); sleep(2); } } return 0;}
输出结果:
[root@red2 threads]# ./test a.txt
child!
file = a.txt
fd = 3
size = 163
1111111111111111111111111111111111111111111
22222222222222222222222222222222222222222222
33333333333333333333
444444444444444444
55555555555
66666666
7777
88
99
0
parent!
parent!
child!
file = a.txt
fd = 3
size = 163
1111111111111111111111111111111111111111111
22222222222222222222222222222222222222222222
33333333333333333333
444444444444444444
55555555555
66666666
7777
88
99
0
parent!
- 菜鸟的学习之旅-APUE多线程小例子(1)
- 小菜鸟的学习之路!
- 小菜鸟的ubuntu学习之路
- 小菜鸟学习之路
- 一个多线程的小例子---C#高级编程学习
- 学习VC多线程时随手写的一个小例子
- unity3D学习之ITween例子测试-UI菜鸟笔记1
- 多线程的一个小例子
- 多线程通信的小例子
- 菜鸟记录学习java的点点滴滴之几个小错误
- 菜鸟小白的python学习之路
- 学习GIS的小菜鸟
- 小菜鸟的JS学习之路——No.1(使用JS)
- 小菜鸟的JS学习之路——No.3(数据类型 1)
- 多线程之同步线程通信小例子
- APUE的小问题
- pthon学习之小例子
- 小菜鸟也想飞的java笔记——java多线程学习笔记
- C#给datetime列存入null值
- Creating a new Storm project
- MyEclipse快捷键大全
- Design Principle
- 单例扩展-多例模式(枚举实现)
- 菜鸟的学习之旅-APUE多线程小例子(1)
- Debug与Release区别
- sharepoint 2010 list 无法使用数据视图
- 在vc中实现获取汉字拼音的首字母
- 基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试
- 交叉编译环境的建立与Eclipse的使用
- 自定义Dialog
- 设计模式
- 淘宝网站开发秘史:买来的系统 花名文化由来