随笔分类 - Linux
摘要:共享内存 消息队列的读取和写入过程,都会有发生用户态和内核态之间的消息拷贝过程,共享内存就解决了这个问题。对于内存管理,现代操作系统采用虚拟内存技术,每个进程都有个自己独立的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中,所以即使进程A和进程B的虚拟地址是一样的,但是访问的是不同的物理地址,
阅读全文
摘要:(信号) linux 信号的机制 信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。 信号是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。 信号可以导致一个正在运行的进程被另一个正在运行的异步进程中
阅读全文
摘要:I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。 1. select 头文件:#include <sys/select.h> 1.1、函数原型 int select(int nfds,
阅读全文
摘要:套接字函数 #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> // 包含了这个头文件,上面两个就可以省略 int socket(int domain, int type, int protocol); - 功能
阅读全文
摘要:头文件: #include <pthread.h> 1. pthread_create 一般情况下,main函数所在的线程,称之为主线程(main线程),其余创建的线程称之为子线程。 程序中默认只有一个进程,fork()函数调用,变成2个进程 程序中默认只有一个线程,pthread_create()
阅读全文
摘要:在编程的时候,很多时候会用到定时器,定时检测某个状态是否发生变化并进行处理。这时候,就会用到setitimer函数了。 - 功能:设置定时器(闹钟)。可以替代alarm函数。精度微妙us,可以实现周期性定时 1. 头文件 #include <sys/time.h> 2. 函数原型 int setit
阅读全文
摘要:内存映射(Memory-mapped I/O)是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件。 头文件包含 #include <sys/mman.h> 相关函数 void *mmap(void *addr, size_t length, int prot, int flags,int
阅读全文
摘要:man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。 可以按章节来搜索手册: man 1: 用户命令(ls,cd,cp,rm,tar等) man 2: 系统调用(与linux内核相关的,比如open函数,read函数,poll函数等手册)
阅读全文
摘要:头文件 #include <sys/types.h> #include <unistd.h>函数 pid_t fork(void); 函数的作用:用于创建子进程。 返回值:类型:pid_t fork()的返回值会返回两次。一次是在父进程中,一次是在子进程中。 在父进程中返回创建的子进程的ID, 在子
阅读全文
摘要:大型工程会将工程中的多个源文件,按照类型、功能、模块分别放在若干目录中,Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。 Makefile带来的好处就是”自动化编译“,一旦写好,只需要一个make命令,整个工程完全自动编
阅读全文