
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
当main函数执行头插函数时,执行完头插的第一句之后,因某种原因进入内核,恰好执行对应信号的中断处理方法,二次执行完头插,回到main执行流之后,头插函数执行完第二句。子进程回收可以采用对SIGCHLD信号自定义捕捉的方式来完成,自定义捕捉中采用WNOHANG非阻塞调用+死循环来等待子进程,确保完全回收和不影响父进程。例子:如图,main函数中没有直接调用handler函数的语句,并没有关联。举例

main函数返回值要写到PCB里,PCB里有对应的exit_code退出码,exit_signal信号码,父进程通过系统调用waitpid获取子进程的状态码,getpid()和getppid()同理,PCB里有存。因为子进程结束后,进入僵尸状态,等待父进程回收,其中进程地址空间、代码和数据以及页表可以释放,但是子进程的PCB(task_struct)需要保留,2)父进程派给子进程的任务完成的情况(

返回值:成功返回handler,失败返回SIG_ERR(一个宏,通常定义为 (void (*)(int))-1,表示一个无效的函数指针),错误码被设置。raise给自己发送信号,abort给自己进程发送终止信号(发送6号新号,要求进程必须处理,默认终止)。alarm(5)->过3秒,设alarm(10)->过10秒终止了,返回值为2,即以前设定闹钟剩余的秒数。3.人能识别信号,是被“提前教育”过的

可以看到,operator[]内部调用insert,insert返回一个pair<iterator,bool>的结构,插入成功,pair.second为true,反之为false,pair.first为key位置所在的迭代器,operator[]返回该迭代器位置的value的引用。对于C++,简单很多,只需要将定义一个节点指针cur从头开始走,插入到set中,直到set插入失败,即回到环的开始节点
