会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
孤~狼
博客园
首页
新随笔
联系
管理
订阅
上一页
1
···
4
5
6
7
8
9
10
11
下一页
2018年4月25日
长调转语句——超时退出
摘要: #include <setjmp.h > //注:长跳转语句只能从栈上往下跳,不能从下往上跳。 用途:可以用于超时退出机制 1.setjmp(jmp_buf env) //记录调转点env(最好设置成全局变量) sigsetjmp(sigjmp_buf env, int savesigs) //将s
阅读全文
posted @ 2018-04-25 11:17 edan
阅读(273)
评论(0)
推荐(0)
2018年4月24日
signal——信号集
摘要: 1.信号集 每个进程都有一个信号屏蔽字,它规定了当前要阻塞递送到该进程的信号集。对于每种可能的信号,该屏蔽字中都有一bit位与之对应。信号数可能会超过一个整型数所包含的二进制位数,因此POSIX.1定义了一个新数据类型sigset_t,它包括一个信号集 int sigempytset(sigset_
阅读全文
posted @ 2018-04-24 23:51 edan
阅读(1199)
评论(0)
推荐(0)
signal之——异步回收机制2
摘要: 前言:上一篇的处理方法可以解决所有回收问题,但是如果我们不考虑子进程的返回状态,那么可以使内核来进行对子进程的回收 代码如下: //如果无需关心进程结束状态 可以设置子进程结束时不产生僵尸进程有内核值接回收#include <stdio.h>#include <stdlib.h>#include <
阅读全文
posted @ 2018-04-24 19:19 edan
阅读(141)
评论(0)
推荐(0)
signal之——异步回收机制
摘要: 前言:回收子进程之前用了wait()和非阻塞模型,今天学了信号以后可以使回收机制更上一层楼,通过信号函数,父进程只需要做自己的事情,接收到信号后就触发信号函数。 信号处理函数可能会出现的bug: 1.受到停止信号也会触发SIGCHLD信号,使wait阻塞; 2.停止后继续也会触发信号,导致父进程阻塞
阅读全文
posted @ 2018-04-24 19:14 edan
阅读(384)
评论(0)
推荐(0)
IPC之——信号量集(多个信号量)
摘要: 如果两个进程不仅需要同步,还要保证先后执行顺序,就要用两个信号量(互斥锁)来解决 //栅栏模型:实现以下框架中的四个子进程 所有进程做完任务后 在一起执行下一次 #include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <
阅读全文
posted @ 2018-04-24 17:58 edan
阅读(1437)
评论(0)
推荐(0)
2018年4月22日
IPC之——信号量集
摘要: 信号量集用于对存在竞争的资源加锁 1.semId=semget(key,nsems,semflg) key:为信号量集名称,可以指定为0455等数字,也可以为PC_PRIVATE nsems:创建几个信号量 semflg:创建并给权限,如(IPC_CREAT | 0600); 2.semctl(se
阅读全文
posted @ 2018-04-22 11:39 edan
阅读(398)
评论(0)
推荐(0)
2018年4月21日
IPC之——消息队列
摘要: 消息队列作用: 可以用于两个没有联系的进程间通信,创建一个消息队列类似于打开了一个文件,两个不同的进程都可以进行操作 消息队列之函数介绍: 头文件:<sys/type.h> <sys/ipc.h> <sys/msg.h> 1.msgget(key_t,int msgflg)://创建消息队列 返回值
阅读全文
posted @ 2018-04-21 11:50 edan
阅读(189)
评论(0)
推荐(0)
2018年4月20日
特殊命令
摘要: 1. “\033[s”定位当前光标位置 "\033[u"恢复光标位置 "\033[K" 清除当前行光标后的内容 "\033[C"光标右移 注("\033[1C" 和"\033[0C" 都会右移) "\033[D"光标左移 2. isprintf(ch) 判断是否是可打印字符,包含在头文件<ctype
阅读全文
posted @ 2018-04-20 13:50 edan
阅读(465)
评论(0)
推荐(0)
2018年4月19日
面试概念集锦
摘要: 1.fork和vfork的区别: 1.vfork()保证子进程先运行,在他调用exec或exit之后父进程才能被调度运行 2.vfork子进程在执行exec或exit之前运行在父进程地址空间。 2.如果多个进程同时结束,可能造成回收不完全,产生僵尸进程(同中信号不派对) 解决方案:利用循环 进行wa
阅读全文
posted @ 2018-04-19 22:42 edan
阅读(109)
评论(0)
推荐(0)
守护进程(精灵进程)
摘要: 步骤: 1.设置创建文件屏蔽字 <控制新建文件权限> 2.fork产生孤儿进程 <保证不会是组长进程 确保setsid成功调用> 3.调用setsid脱离控制终端 <脱离控制终端>//建立一个新会话 4.更改工作路径到'/' <防止意外的占用挂载路径 导致无法正常卸载> 5.关闭不用的文件描述符 并
阅读全文
posted @ 2018-04-19 22:31 edan
阅读(486)
评论(0)
推荐(0)
上一页
1
···
4
5
6
7
8
9
10
11
下一页
公告