Unix环境编程
内内么斜
初学者
展开
-
Unix环境编程-第八章多路复用I/O
线程同步:三种解决思路:多路复用IO解决多线程所带来的效率问题 1.select: int select(int nfds(需要关心的文件描述符最大值+1), fd_set *readfds(准备读的文件描述符集合), fd_set *writefds(准备写的文件描述符集合), fd_set *exceptfds(有异常的文件描述符集合), struct t...原创 2019-10-30 19:52:16 · 161 阅读 · 0 评论 -
Unix环境编程-第七章线程和线程同步
线程和进程的区别进程:拥有4G独立的虚拟内存 复制数据空间 共享代码区线程:拥有独立的栈区 同一个进程中的线程共享代码区、数据区、堆区 轻量级的并发性一个系统最大的进程数 远远小于 线程的最大数量线程的函数:如果函数出错 不会 修改全局的errno 也意味着不能使用perror printf("%m")都是通过返回值 错误码通过函数返回统一编程接口: 函数名相...原创 2019-10-30 19:50:09 · 163 阅读 · 0 评论 -
Unix环境编程-第六章网络通信
网络通信ISO/OSI网络七层模型TCP/IP模型TCP:数据传输控制协议 数据流 连接 可靠 数据完整且有序 比UDP要低三次握手 四次分手UDP:用户数据报协议 数据报 不连接 不可靠 不保证数据的完整和有序 传输效率要高编程模型TCPserver1. socket(AF_INET,SOCK_STREAM/SOCK_DGRAM,0)2. struct ...原创 2019-10-30 19:44:33 · 164 阅读 · 0 评论 -
Unix环境编程-第五章进程间通信
进程通信: 多个进程之间进行数据交换1.简单进程间通信:命令行参数.环境变量.信号.文件.2.传统进程间通信:管道.3.XSI进程间通信:共享内存.消息队列.信号量.4.网络进程间通信:套接字.信号集:信号的集合信号量:进程间通信的方式 限制进程多共享资源的访问信号量集:线程同步的一种方式半双工管道 mkfifo 创建管道文件有名管道和无名管道IPC标识 1.创建IPC键值 ...原创 2019-10-30 19:43:21 · 153 阅读 · 0 评论 -
Unix环境编程-第四章进程
进程程序:存储在磁盘中的静态的机器指令 静态的程序运行之后:操作系统会把程序的指令及数据加载到内存中,形成4G虚拟内存映射进程:程序运行之后动态的内存分布 动态的正在运行的程序同一个程序 可以同时运行多次多进程:重量级 独立4G的虚拟内存空间多线程:轻量级 共享进程的内存空间 会独立的栈空间进程 启动很多进程进程号只是一个数字 操作系统里面 延迟...原创 2019-10-28 21:14:32 · 140 阅读 · 0 评论 -
Unix-第三章文件操作
文件系统在linux下面 一切设备皆文件open/read/write/ioctl/closeC语言标准库里 操作文件的函数fopen fread fwrite fclose ftell fseek fprintf fscanf fputs fgets …FILE * 文件指针 结构体指针open 打开 或者 创建并打开文件create ...原创 2019-10-26 16:05:07 · 153 阅读 · 0 评论 -
Unix环境编程-第二章内存管理
内存管理虚拟内存1个进程有4G独立的虚拟内存0-3G 用户内存3-4G 内核内存代码区->数据段->BSS段->堆区->堆栈缓冲区(共享库、共享内存)->栈区->命令行参数 环境表->内核区特点以及存储的数据环境表:环境变量=环境变量值 形式的字符串PATH=/home/ubuntu以字符串形式存在的环境变量的首地址存储在一个 指...原创 2019-10-23 15:26:10 · 219 阅读 · 0 评论 -
Unix环境编程-第一章动态库,静态库
静态库把目标文件归档 1.编写源代码 add.h add.c sub.h sub.c2.编译成目标文件gcc -c add.c ==> add.ogcc -c sub.c ==> sub.o3.创建静态库ar -r liboper.a add.o sub.o ==> 静态库的名字是 oper在任何一个地方:如果需要使用到add...原创 2019-10-22 10:45:52 · 126 阅读 · 0 评论