linux 系统编程
jinchats
这个作者很懒,什么都没留下…
展开
-
线程间的同步和互斥
<br /> <br /> 有一个全局队列 job_queue , 在main() 函数里面创建两个线程, 一个往队列里增加一个节点,另一个从队列里删除一个节点(如果队列里有节点),如果没有节点,线程将阻塞。<br /> 用 pthread_mutex_lock(&mutex) 和 pthread_mutex_unlock(&mutex) 来实现对资源的互斥访问<br /> 用 sem_wait(&sem) 和 sem_post(&sem) 来实现线程间的同步操作<br原创 2010-08-16 19:42:00 · 359 阅读 · 0 评论 -
linux 下静态库、动态库
静态、动态链接库的创建和使用原创 2010-08-13 20:45:00 · 295 阅读 · 0 评论 -
异步清理子进程
<br />当一个子进程结束后,Linux 给父进程发送SIGCHLD 信号,这个信号的默认处理方式是什么都不做。通过这一特点我们可以用获得子进程的退出信息,而且在用 wait(&status) 获得信息的时候,父进程还可以不用阻塞继续运行<br /> <br /> <br />#include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/types.h>#include<unistd.h>#include<sign原创 2010-08-15 21:23:00 · 354 阅读 · 0 评论 -
文件的内存映射
<br />#include<stdio.h>#include<stdlib.h>#include<sys/mman.h>#include<sys/stat.h>#include<sys/types.h>#include<fcntl.h>#define FILE_LENGTH 0x1000int main(){ void* file_memory; int fd; fd = open("test", O_RDWR|O_CREAT); if(fd原创 2010-08-21 20:40:00 · 241 阅读 · 0 评论 -
段页式内存管理中,逻辑地址,线性地址,物理地址的差别
段页式内存管理中,逻辑地址,线性地址,物理地址的差别 线性地址是逻辑地址到物理地址变换之间的中间层,是处理器可寻址的内存空间(称为线性地址空间)中的地址。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。 如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。不过,在开启分页功能之后,一个线性地址可能没有相对映的物理地址,因为它所对应的内存可能被交换到硬盘中。32位线性地址可用于定位4G转载 2010-11-05 15:07:00 · 1387 阅读 · 0 评论