- 博客(15)
- 收藏
- 关注
原创 基于UnixC的简单web服务器
t_net.h和t_net.c的代码第十三天有,这里编译时连接打包好的动态库即可 doit.h#ifndef DO_IT_H_#define DO_IT_H_ #include<unistd.h> #include<ctype.h> #include<t_file.h> #include<sys/socket.h> #inc...
2019-01-26 17:11:07
563
3
原创 UnixC第十四天
回忆昨天内容一、并发服务器的实现多进程实现并发服务器父进程 子进程 各自负责的任务信号 头文件 动态库的制作和生成 使用使用多线程也可以实现服务器的并发二、基于udp的编程实现模型 实现服务器 客户端不需要连接 基于数据包的recvfrom(2) sendto(2)三、线程的基础 每个线程有自己的tid tcb 每个线程有自己...
2019-01-26 17:02:13
256
原创 UnixC的第十三天
回忆昨天内容一、基于TCP的编程实现模型实现服务器端 socket(2) bind(2) listen(2) accept(2)客户端 socket connect地址家族 通用地址家族 ipv4地址家族 ipv6地址家族将代码封装,头文件 源文件 多文件编译链接今天内容:一、基于TCP的实现 一次连接...
2019-01-26 16:56:53
319
1
原创 UnixC第十二天
回忆昨天内容 一、system v ipc 共享内存 获取一个键值 使用键值获取一个共享内存段的id 将共享内存段关联到进程的虚拟地址(内存) 不再使用这个共享内存段的时候,解除关联 二、网络的基础 TCP/IP协议簇 四层或者五层 应用层 传输层 网络层 链路层 物理层 ip地址 mac地址 ...
2019-01-26 16:47:01
232
原创 UnixC第十一天
回忆昨天内容一、信号阻塞 sigprocmask(2) sigset_t 信号阻塞和信号忽略的区别 可靠信号 不可靠 信号丢失二、获取进程的未决信号集 从未决信号集中找未决信号 sigpending(2) 什么是未决信号?三、信号从产生到处理的整个过程四、system v ipc 消息队列 获取一个system v 的...
2019-01-26 16:43:02
226
原创 Ubuntu下UnixC的第十天
回忆昨天内容一、有名管道 管道类型的文件 大小始终为0 用于进程间的通信 任意进程 mkfifo(3)二、信号的基础软件实现的中断机制64个信号 使用 kill -l命令查看信号编号 信号名信号的产生、 信号的递达给进程(或在此前被阻塞) 进程对信号的处理信号处于未决状态 未决信号三、改变进程对信号的处理signal(2)向进程注册信号处...
2019-01-17 19:32:06
237
原创 Ubuntu下UnixC的第九天
回忆上次课程一、waitpid(2)回收进程资源 可以指定要等待的进程可以非阻塞进程组的概念wait(2)二、进程映像的替换execve(2) 使用新的进程映像替换掉旧的映像代码段 数据段 栈段 堆遗言函数 atexit(3) execl(3)家族的函数 int main(int argc,char* argv[],char* envp[]);b...
2019-01-17 19:28:34
295
原创 Ubuntu下UnixC的第八天
回忆昨天内容一、进程的基础进程树 树根 init进程 1号进程父子关系 兄弟关系pid PCB进程是资源分配的基本单位ps -aux|grep 进程数 toppstree二、创建子进程fork(2)父进程和子进程是异步的wait(2)让父进程和子进程同步复制父进程的PCBPCB中有文件描述符 进程的映像父进程调用fork(2) 但是返回时 已经是两个进程了...
2019-01-17 19:21:12
254
原创 Ubuntu下UnixC的第七天
回忆昨天内容一、获取文件的元数据(文件的类型 权限) 使用一些宏 或者位操作二、文件夹的操作 文件夹的权限 opendir(3) closedir(3)readdir(3)ls三、文件锁读锁 写锁建议锁 fcntl(2)可变参数四、库函数和系统调用的关系fopen(3) fclose(3) fgetc(3) fputc(3)open(2) cl...
2019-01-17 19:15:40
193
原创 Ubuntu下UnixC的第六天
回忆一、lseek(2) 重新定位读写文件的位置二、使用mmap将文件映射到进程的虚拟地址空间在内存中对数据的更改直接反应到文件中三、文件描述符的复制dup (2)dup2(2)文件描述符的具体概念文件输出重定向文件输入重定向四、获取文件的元数据inode i节点 每个文件都有自己的inode 且是唯一的硬链接 软链接 原理stat(2) struct stat结构...
2019-01-17 19:10:45
174
原创 Ubuntu下UnixC第五天
回忆昨天课程内容 一、内存管理 进程的映像 代码段 数据段 堆 栈段 变量的空间分配在什么地方,不同的段有不同的属性 变量的生命周期 变量的作用域 堆 手动释放free p=NULL; 进程 pid PCB 进程的映像是属于PCB的一个成员 const 定义一个只读变量 二、使用mmap将物理地址映射到进程的虚...
2019-01-15 18:27:20
178
原创 Ubuntu下UnixC第四天
回顾课程内容 一、gdb调试器的使用 一定要加调试信息 gcc xxx.c -g l b r n s p c q 二、内存管理 虚拟地址 <-操作系统 -> 物理地址 映射 页 页表 页框 链接原理 section text data stack 多个目标文件合并成一个可执行文件 相应的sec...
2019-01-15 18:18:19
218
原创 Ubuntu下UnixC的第三天
dlopen(3) dlclose(3) dlerror(3) dlsym(3) #include <dlfcn.h> void *dlopen(const char *filename, int flags); 参数 filename 指定了共享库的文件名 flags 二选一 RTLD_LAZY :懒绑定,代码执行时才绑定...
2019-01-15 15:56:09
167
原创 Ubuntu下UnixC的第二天
回忆昨天的内容一、什么是操作系统计算机的操作系统是一款管理计算机资源的软件,计算机资源包括硬件资源和软件资源。系统软件 应用软件二、计算机语言的发展史机器语言 汇编语言 C语言预处理 编译 汇编 链接 加载今天内容一、大型项目的代码组织 规则 约定 头文件内容: 1头文件卫士#ifndef.... 2函数的声明 ...
2019-01-15 15:50:13
213
原创 Ubuntu下 UnixC的第一天
uc课程王建立unix/cunix是计算机的操作系统C c语言《鸟哥私房菜》今天内容: 一 认识操作系统 什么是操作系统? 如果整个汽车看成一个框架 加油子系统:油箱的油输送到发动机 油门 用户和加油子系统的接口 ...
2019-01-15 15:45:24
237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人