
Linux系统编程
yj_coder
这个作者很懒,什么都没留下…
展开
-
Linux系统编程(2)
1. 父子进程使用文件进行通信先打开一个文件,然后fork出子进程,父进程和子进程都拥有这个文件描述符。父进程向该文件中写一句话,然后关闭文件描述符。然后过了一秒后子进程醒了,子进程先把文件指针移到文件的初始位置,然后读文件并打印输出,最后关闭文件描述符。示意图:执行结果:2. 父进程fork三个子进程例子段错误:执行结果:解释:前...原创 2019-06-05 20:46:30 · 297 阅读 · 0 评论 -
Linux系统编程(3)
1. mmap的注意事项如果要做操作,需要单独创建一个变量来操作,最后munmap函数传入的仍然是ptr。2.使用mmap进行有血缘关系的进程间通信例:父进程往映射区写一句话,这句话被同步到磁盘文件,子进程中映射区同步了磁盘文件的内容,然后将映射区的内容打印出来。注:内存映射区是非阻塞的,所以上面的程序不能保证父进程先写进去,然后子进程再读出来,我们...原创 2019-06-06 21:37:03 · 267 阅读 · 0 评论 -
Linux系统编程(4)
1. 守护进程概念2. 创建守护进程正规流程其中PGID是进程组ID,SID是会话ID。例:创建守护进程3.守护进程练习_代码实现注:回调函数中open函数的设置权限的参数是或上O_APPEND的,这是追加的意思,后面write函数往文件中写的时候会从结尾处开始写。执行结果:4. 线程的概念注:主线程...原创 2019-06-10 21:00:38 · 1011 阅读 · 0 评论 -
Linux系统编程(1)
1. 程序和进程、并行和并发并发:指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。并行:多个处理机同时进行处理。上图为3个进程轮流被cpu处理,每次处理一个时间碎片的时间。2. PCB(进程控制块)我们知道,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linu...原创 2019-06-04 22:57:05 · 1255 阅读 · 0 评论 -
Linux系统编程(5)
1.互斥锁使用的时候注意的问题临界区:lock和unlock中间的代码就叫做临界区,在上锁时应该保证临界区越小越好。在上锁时应该保证临界区越小越好: 2. 线程为什么要加锁先说一下什么是原子操作:通过加锁的方式来模拟原子操作:下图中lock和unlock中间的三行代码,如果不加锁时,这三行代码在执行中可能会失去CPU,所以不是原子操作,而...原创 2019-06-11 17:26:54 · 252 阅读 · 0 评论