
linux C
文章平均质量分 86
系统调用、C库学习
tyrocjl
这个人很懒,什么都没有留下哦
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【linux C】绑定任务到特定CPU(CPU亲和性)
本文主要讲解了cpu_set_t类型的操作函数(CPU_ZERO CPU_SET等),以及设置亲和性的三种接口(sched_setaffinity pthread_setaffinity_np pthread_attr_setaffinity_np)的使用方法原创 2022-08-22 10:18:20 · 9343 阅读 · 4 评论 -
【linux C】posix timer接口说明
所有timer_xxxx() 都要Link with -lrttimer_createint timer_create(clockid_t clockid, struct sigevent *restrict sevp, timer_t *restrict timerid );timer_create()创建一个新的间隔定时器,新定时器的 ID在timerid指向的缓冲区中存储,该缓冲区必须是非空指针;此ID在进程中是唯一的,直到定时器被删除;新定时器的初始状态是未原创 2022-04-07 19:37:06 · 1538 阅读 · 1 评论 -
【linux C】sigevent结构体
sigevent 结构体说明原创 2022-04-02 18:08:12 · 2525 阅读 · 0 评论 -
基于多线程、IO多路复用(epoll)、信号量的HTTP服务器
(一)功能概述顺利解析GET请求的html类型和png类型,并返回资源给客户端顺利解析POST请求各字段,但未做存储(为了展示效果,直接在服务器中加了后台处理程序段,理论上服务器上应该没有这些代码)框架完整,可扩展性强,方便后期添加更加详细的请求解析和响应,只需为对应的结构体添加成员并增加适当的数据结构即可。epoll实现IO多路复用多线程异步处理IO事务,并发线程数,由信号量控制...原创 2019-11-20 11:22:20 · 547 阅读 · 0 评论 -
Unix C学习之IO多路复用之epoll
(一)epoll, select, poll区别图片来自select、poll和epoll的总结对比select它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。poll本质上和se...原创 2019-11-18 13:17:51 · 274 阅读 · 0 评论 -
Unix C学习之System V IPC——共享内存
学习资料,参考资料:System V IPC机制简介System V IPC 之消息队列(一)System V IPCSystem V 引入了三种高级进程间通信机制:消息队列、共享内存和信号量IPC 对象(消息队列、共享内存和信号量)存在于内核中而不是文件系统中,由用户控制释放(用户管理 ipc 对象的生命周期),不像管道的释放由内核控制IPC 对象通过其标识符来引用和访问,所有 I...原创 2019-11-18 11:34:27 · 336 阅读 · 0 评论 -
Unix C学习之网络编程——简单服务器(基于UDP)
详细流程在TCP编程模型中(一)服务器编程模型1 创建一个socket设备,返回该设备的文件描述符fd socket(2)2 将fd和本地的地址绑定 bind(2)while(1){3 阻塞等待客户端数据的到来 recvfrom(2)4 处理客户端的数据5 将处理结果发送给客户端 sendto(2)}6 close(fd);(二)服务器编程模型1 创...原创 2019-11-17 15:21:36 · 190 阅读 · 0 评论 -
Unix C学习之网络编程——简单服务器(基于TCP)
(一)简单开发模型 a)服务器端1 创建socket设备,返回该设备的文件描述符 sfd socket(2)2 将sfd和本地ip地址 端口进行绑定 bind(2)3 将sfd设置位被动连接状态,客户端连接请求到来的时候, 将这些连接请求存放到sfd设备的未决连接队列中l...原创 2019-11-17 14:19:37 · 344 阅读 · 0 评论 -
Unix C学习之信号掩码和未决信号集
(一)概念阻塞和未决的概念: A signal may be blocked, which means that it will not be delivered until it is later unblocked. Between the time when it is generated and when it is delivered a signal is ...原创 2019-11-06 22:23:34 · 378 阅读 · 0 评论 -
UnixC 学习之自己实现sleep()函数
pause(2)#include <unistd.h>int pause(void);功能:等待信号,只有进程收到信号,信号处理函数被调用后,pause(2)才返回,否则处于阻塞状态。返回值:返回-1 errno被设置...原创 2019-11-06 14:24:53 · 472 阅读 · 0 评论 -
Unix C学习之信号(signal)
(一)信号的概念信号就是软中断,进程在执行的过程中,如果有信号到来,进程调用信号处理程序.处理完毕进程继续执行.每个进程都有信号的处理程序,进程的信号处理程序继承自父进程.系统为用户提供了1-64号信号,没有32 33号,共62个。过程:信号的产生 信号的递达 信号的处理未决信号:信号从产生到信号处理之前,信号处于未决状态,称这种状态的信号为未决信号处理信号的三种方法:1缺省处理...原创 2019-11-05 20:15:13 · 313 阅读 · 0 评论 -
Unix C学习之进程通讯——管道
(一)无名管道可以类比匿名映射,无名管道没有记录到文件系统中。可以认为是在内存中开辟一片区域作为文件,只不过是在文件系统中没有。pipe(2)#include <unistd.h>int pipe(int pipefd[2]);功能:创建一个单工管道参数:pipefd[2] pipefd[0] 指向了管道的读端 pipefd[1]指向了管道的写端返回值: 成功 ...原创 2019-11-04 20:39:30 · 137 阅读 · 0 评论 -
Unix C学习之进程中对环境变量的操作
每个进程都有自己的环境列表,对当前进程的环境变量列表进行操作的函数如下:#include <stdlib.h>char *getenv(const char *name);功能: 获取环境变量name的值参数:name 指定了要找的环境变量的名字返回值:找不到返回NULL 找到返回name变量的值的首地址 #include <stdlib.h&...原创 2019-11-04 20:04:22 · 165 阅读 · 0 评论 -
Unix C 学习之进程
进程的创建pid_t fork(void);#include <sys/types.h>#include <unistd.h> fork完全复制一个进程作为子进程(copy-on-write),The child process and the parent process run in separate memory spaces. At ...原创 2019-11-03 23:30:32 · 249 阅读 · 0 评论 -
Unix C学习之文件夹操作
文件夹的内容:文件夹的内容就是文件夹里的文件或文件夹文件夹的权限:r读 w写 x可通过原创 2019-11-01 08:54:18 · 228 阅读 · 0 评论 -
Unix C 学习之元数据
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息。使用stat(2)获取文件的元数据 #include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int stat(const...原创 2019-10-31 10:43:56 · 341 阅读 · 0 评论 -
Unix C 学习之内存映射
mmap(2) #include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);功能:将文件和设备映射到内存参数:addr 指示内核分配的地址,linux会分配附近的页,该参数一般为NULL,由内核选择地址建立映射区域l...原创 2019-10-31 09:19:13 · 295 阅读 · 0 评论 -
Unix C 学习之文件操作
int open(const char *pathname, int flags,…);#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>功能:打开一个文件 有可能创建一个文件参数:pathname 指定了要打开的文件的路径 &...原创 2019-10-30 09:06:05 · 295 阅读 · 0 评论