Linux C程序设计系列文章很好很强大,非常适合linux开发学习。
http://www.studyemb.cn/forum.php?mod=forumdisplay&fid=36
目录
Linux程序设计................................................................................................................. 1
一、文件操作................................................................................................................. 5
1. 系统调用.............................................................................................................. 5
1) 系统调用open................................................................................................ 5
2) 系统调用close............................................................................................... 6
3) 系统调用read................................................................................................ 6
4) 系统调用write............................................................................................... 7
5) 系统调用ioctl................................................................................................ 7
6) 标准I/O函数lseek......................................................................................... 7
2. 标准I/O库........................................................................................................... 8
1) 标准I/O函数fopen........................................................................................ 8
2) 标准I/O函数fclose........................................................................................ 8
3) 标准I/O函数fread......................................................................................... 9
4) 标准I/O函数fwrite........................................................................................ 9
5) 标准I/O函数fflush...................................................................................... 10
6) 标准I/O函数fseek....................................................................................... 10
7) 标准I/O函数fgetc、getc、getchar、fputc、putc、putchar、fgets、gets........... 11
3. 格式化输入输出.................................................................................................. 11
1) 格式化输入函数scanf、fscanf、sscanf........................................................... 11
2) 格式化输出函数printf、fprintf、sprintf......................................................... 11
二、进程...................................................................................................................... 13
1. 启用新进程system............................................................................................... 13
2. 替换进程exec..................................................................................................... 13
3. 复制进程fork...................................................................................................... 14
4. 等待进程wait...................................................................................................... 14
5. 守护进程、僵尸进程、孤儿进程......................................................................... 15
1) 概念............................................................................................................ 15
2) 区别............................................................................................................ 15
3) 创建守护进程.............................................................................................. 15
三、线程...................................................................................................................... 17
1. 基本线程操作..................................................................................................... 17
1) 创建线程..................................................................................................... 17
2) 线程退出..................................................................................................... 17
3) 线程等待..................................................................................................... 18
2. 线程属性............................................................................................................ 18
3. 取消线程............................................................................................................ 19
4. 线程和进程的区别.............................................................................................. 19
四、进程间通信............................................................................................................ 20
1. 信号................................................................................................................... 20
2. 管道................................................................................................................... 20
3. 命名管道............................................................................................................ 20
4. 信号量(system V)................................................................................................ 21
5. 消息队列............................................................................................................ 21
6. 共享内存............................................................................................................ 22
7. 内存映射文件..................................................................................................... 22
8. 套接字................................................................................................................ 22
五、线程间同步............................................................................................................ 24
1. 信号量(POSIX)................................................................................................... 24
2. 互斥量................................................................................................................ 24
3. 条件变量............................................................................................................ 25
六、套接字................................................................................................................... 26
1. 套接字特性......................................................................................................... 26
1) 套接字的域.................................................................................................. 26
2) 套接字类型.................................................................................................. 26
3) 套接字协议.................................................................................................. 26
4) 套接字地址结构........................................................................................... 27
2. 套接字操作......................................................................................................... 27
1) 创建套接字.................................................................................................. 27
2) 命名套接字.................................................................................................. 28
3) 创建套接字队列........................................................................................... 28
4) 接受连接..................................................................................................... 29
5) 请求连接..................................................................................................... 29
6) 关键套接字.................................................................................................. 30
3. 网络字节序和主机字节序.................................................................................... 30
4. 网络信息............................................................................................................ 31
1) IP和域名的转换 .......................................................................................... 31
2) 字符串的IP和32位的IP转换..................................................................... 31
3) 服务信息函数 ............................................................................................. 31
5. I/O阻塞与非阻塞操作应用................................................................................... 32
6. Select多路复用.................................................................................................... 32
1) select系统调用.............................................................................................. 32
2) Socket编程中select的其它用处..................................................................... 34
7. 数据报................................................................................................................ 34
附录源码........................................................................................................................ 35
案例一:文件操作--系统调用................................................................................... 35
案例二:文件操作--库函数...................................................................................... 35
案例三:进程--system.............................................................................................. 37
案例四:进程--exec................................................................................................. 37
案例五:进程--fork.................................................................................................. 37
案例六:进程--wait.................................................................................................. 38
案例七:进程--守护进程.......................................................................................... 40
案例八:线程--创建线程.......................................................................................... 40
案例九:线程--多线程同时执行............................................................................... 41
案例十:线程--线程属性.......................................................................................... 42
案例十:线程--取消线程.......................................................................................... 43
案例十一:进程间通信--信号................................................................................... 44
案例十二:进程间通信--管道................................................................................... 45
案例十三:进程间通信--命名管道............................................................................ 46
案例十四:进程间通信--信号量(system V)................................................................ 48
案例十五:进程间通信--消息队列............................................................................ 51
案例十六:进程间通信--共享内存............................................................................ 54
案例十七:进程间通信--内存映射文件..................................................................... 57
案例十八:进程间通信--套接字............................................................................... 58
案例十九:线程间同步--信号量(POSIX).................................................................. 61
案例二十:线程间同步--互斥量............................................................................... 62
案例二十一:线程间同步--条件变量........................................................................ 64
案例二十二:Socket--建立socket.............................................................................. 66
案例二十三:Socket--网络信息................................................................................ 68
案例二十四:Socket--select...................................................................................... 70
案例二十五:Socket--数据报.................................................................................... 72
http://www.studyemb.cn/forum.php?mod=forumdisplay&fid=36
目录
Linux程序设计................................................................................................................. 1
一、文件操作................................................................................................................. 5
1. 系统调用.............................................................................................................. 5
1) 系统调用open................................................................................................ 5
2) 系统调用close............................................................................................... 6
3) 系统调用read................................................................................................ 6
4) 系统调用write............................................................................................... 7
5) 系统调用ioctl................................................................................................ 7
6) 标准I/O函数lseek......................................................................................... 7
2. 标准I/O库........................................................................................................... 8
1) 标准I/O函数fopen........................................................................................ 8
2) 标准I/O函数fclose........................................................................................ 8
3) 标准I/O函数fread......................................................................................... 9
4) 标准I/O函数fwrite........................................................................................ 9
5) 标准I/O函数fflush...................................................................................... 10
6) 标准I/O函数fseek....................................................................................... 10
7) 标准I/O函数fgetc、getc、getchar、fputc、putc、putchar、fgets、gets........... 11
3. 格式化输入输出.................................................................................................. 11
1) 格式化输入函数scanf、fscanf、sscanf........................................................... 11
2) 格式化输出函数printf、fprintf、sprintf......................................................... 11
二、进程...................................................................................................................... 13
1. 启用新进程system............................................................................................... 13
2. 替换进程exec..................................................................................................... 13
3. 复制进程fork...................................................................................................... 14
4. 等待进程wait...................................................................................................... 14
5. 守护进程、僵尸进程、孤儿进程......................................................................... 15
1) 概念............................................................................................................ 15
2) 区别............................................................................................................ 15
3) 创建守护进程.............................................................................................. 15
三、线程...................................................................................................................... 17
1. 基本线程操作..................................................................................................... 17
1) 创建线程..................................................................................................... 17
2) 线程退出..................................................................................................... 17
3) 线程等待..................................................................................................... 18
2. 线程属性............................................................................................................ 18
3. 取消线程............................................................................................................ 19
4. 线程和进程的区别.............................................................................................. 19
四、进程间通信............................................................................................................ 20
1. 信号................................................................................................................... 20
2. 管道................................................................................................................... 20
3. 命名管道............................................................................................................ 20
4. 信号量(system V)................................................................................................ 21
5. 消息队列............................................................................................................ 21
6. 共享内存............................................................................................................ 22
7. 内存映射文件..................................................................................................... 22
8. 套接字................................................................................................................ 22
五、线程间同步............................................................................................................ 24
1. 信号量(POSIX)................................................................................................... 24
2. 互斥量................................................................................................................ 24
3. 条件变量............................................................................................................ 25
六、套接字................................................................................................................... 26
1. 套接字特性......................................................................................................... 26
1) 套接字的域.................................................................................................. 26
2) 套接字类型.................................................................................................. 26
3) 套接字协议.................................................................................................. 26
4) 套接字地址结构........................................................................................... 27
2. 套接字操作......................................................................................................... 27
1) 创建套接字.................................................................................................. 27
2) 命名套接字.................................................................................................. 28
3) 创建套接字队列........................................................................................... 28
4) 接受连接..................................................................................................... 29
5) 请求连接..................................................................................................... 29
6) 关键套接字.................................................................................................. 30
3. 网络字节序和主机字节序.................................................................................... 30
4. 网络信息............................................................................................................ 31
1) IP和域名的转换 .......................................................................................... 31
2) 字符串的IP和32位的IP转换..................................................................... 31
3) 服务信息函数 ............................................................................................. 31
5. I/O阻塞与非阻塞操作应用................................................................................... 32
6. Select多路复用.................................................................................................... 32
1) select系统调用.............................................................................................. 32
2) Socket编程中select的其它用处..................................................................... 34
7. 数据报................................................................................................................ 34
附录源码........................................................................................................................ 35
案例一:文件操作--系统调用................................................................................... 35
案例二:文件操作--库函数...................................................................................... 35
案例三:进程--system.............................................................................................. 37
案例四:进程--exec................................................................................................. 37
案例五:进程--fork.................................................................................................. 37
案例六:进程--wait.................................................................................................. 38
案例七:进程--守护进程.......................................................................................... 40
案例八:线程--创建线程.......................................................................................... 40
案例九:线程--多线程同时执行............................................................................... 41
案例十:线程--线程属性.......................................................................................... 42
案例十:线程--取消线程.......................................................................................... 43
案例十一:进程间通信--信号................................................................................... 44
案例十二:进程间通信--管道................................................................................... 45
案例十三:进程间通信--命名管道............................................................................ 46
案例十四:进程间通信--信号量(system V)................................................................ 48
案例十五:进程间通信--消息队列............................................................................ 51
案例十六:进程间通信--共享内存............................................................................ 54
案例十七:进程间通信--内存映射文件..................................................................... 57
案例十八:进程间通信--套接字............................................................................... 58
案例十九:线程间同步--信号量(POSIX).................................................................. 61
案例二十:线程间同步--互斥量............................................................................... 62
案例二十一:线程间同步--条件变量........................................................................ 64
案例二十二:Socket--建立socket.............................................................................. 66
案例二十三:Socket--网络信息................................................................................ 68
案例二十四:Socket--select...................................................................................... 70
案例二十五:Socket--数据报.................................................................................... 72