系统编程与网络编程
文章平均质量分 66
系统调用,网络通信
互联网农民工啾咪
这个作者很懒,什么都没留下…
展开
-
线程更新中
线程 代表一列有顺序的,需要CPU执行的指令,可以随时被内核开始,中断或继续运行。 线程使用栈来记忆如何从函数中返回,及存储变量,每个线程都有自己的栈和程序计数器 ---- 线程控制块(处理器状态,线程标识符。。。) 堆,地址空间和全局变量时共享的 内核级线程:进程状态和线程状态不一样 如果一个线程给自己的进程发送sleep信号这个线程可以继续运行。线程可以占多个cpu。 用户级线程:一个线程遇到IO被阻塞时整个进程都会被阻塞,进程去调度线程只占一个cpu。 #include <pthr原创 2021-03-31 21:38:16 · 70 阅读 · 0 评论 -
进程的哲学,创建,通信。
进程 预习内容 进程空间 image 程序怎么变成进程 二进制文件读入内存 生成进程空间 给cpu调度 instance 进程中有什么东西(文件,用户租, 线程 , 二进制image ,安全的上下文关系(u盘插拔)) 虚拟内存(让开发者不用担心这段空间) 虚拟文件系统(抽象树结构) pid_t pid (0 - 2^16) 可以设置内核配置扩大 往后取取到2^16 循环读 fd (0 1 2 3) 先读最小的 这样最大的文件标识符是 个数+1 进程在用户原创 2021-03-31 21:37:16 · 75 阅读 · 0 评论 -
高级IO
高级IO 同步IO 一般向磁盘写数据 利用write交给内核后 内核会保留数据返回成功(这个是非同步) 同步的话就是向磁盘中写数据 内核就要写到磁盘中 (并发的意思)(和线程的同步不一样的意思) int open(const char *pathname, int flags, mode_t mode); //O_SYNC //int fsync(int fd); //每次调用write还是有缓冲 write完之后调用fsync()函数 //确保数据写入磁盘 直接IO 用户层的缓冲原创 2021-03-31 21:35:11 · 101 阅读 · 0 评论 -
系统编程相关的系统调用
系统编程 命令行解析 GETOPT 函数 头文件 : <unistd.h> 原型 : int getopt(int argc, char * const argv[], const char *optstring); argc argv : 由main 函数的参数直接传递而来 optstring : 一个包含准确选项的字符串 返回值 : 返回下一个选项 // 四个全局变量 通常和while一起使用 //char *optarg 指向当前选项的参数 //int optind 下一个选项的原创 2021-03-31 21:33:52 · 102 阅读 · 0 评论