process
百步送剑
很懒, 懒得介绍!
展开
-
Linux: 守护进程
守护进程例子#include <sys/stat.h>#include <sys/types.h>#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/time.h>#include <signal.h>#include <time.h>#include <string.h>//创建...原创 2021-12-05 16:52:34 · 737 阅读 · 0 评论 -
Linux:共享内存
共享内存(效率最高的进程间通信方式)共享内存简单实现写/*#include <sys/ipc.h>#include <sys/shm.h>int shmget(key_t key, size_t size, int shmflg);-功能:创建一个新的共享段,或者获取一个既有的共享内存段的标识 新创建的内存段中的数据都会被初始化为0-参数: -key: key_t是整形,通过这个找到或者创建一个共享内存,一般使用16进制的非0原创 2021-12-05 12:59:57 · 848 阅读 · 0 评论 -
Linux:SIGCHLD回收僵尸进程
信号的相关操作几乎都有了吧/*SIGCHLD信号产生的是三个条件: -1:子进程结束 -2: 子进程暂停(收到SIGSTOP信号暂停) -3:子进程继续运行(处于停止态,收到SIGCONT后唤醒) 以上三种情况都会给父进程发送该信号,父进程默认忽略该信号 可以用SIGCHLD解决僵尸进程问题*/#include <stdio.h>#include <signal.h>#include <unistd.h>#incl原创 2021-12-05 09:59:46 · 199 阅读 · 0 评论 -
Linux:信号集
1.用户通过键盘Ctrl +C,产生2号信号SIGINT(信号被创建)2.信号产生但是没有被处理(未决) -在内核中将所有的没有被处理的信号存储在一个集合中(未决信号集) - SIGINT信号状态被存储在第二个标志位上 -这个标志位的值为0,说明信号不是未决状态 -这个标志位的值为1,说明信号处于未决状态3.这个未决状态的信号需要被处理,在处理之前需要和另一个信号集(阻塞信号集)进行比较 -阻塞信号集默认为0,不会阻塞任何信号,如果需要阻塞某些信号,需要调用某些api -如果阻...原创 2021-12-04 22:02:00 · 613 阅读 · 0 评论 -
Linux:信号及信号捕捉
kill、raise、abort函数#include <stdio.h>#include <string.h>int main(){ char *buf; strcpy(buf, "hello"); return 0;}carey@ubuntu:~/Linux/lesson17_sig$ gcc core.c -gcarey@ubuntu:~/Linux/lesson17_sig$ lsa.out core.ccarey@ub原创 2021-11-30 21:38:39 · 1213 阅读 · 0 评论 -
Linux: 信号
Linux: 信号 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIG原创 2021-11-29 19:54:05 · 117 阅读 · 0 评论 -
进程间通信:内存映射
进程间通信:内存映射父子进程间/*#include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);description: mmap() creates a new mapping in the virtual address space of the calling process. The starting address原创 2021-11-29 16:14:49 · 440 阅读 · 0 评论 -
进程间通信 及 管道
亲缘关系之间共享文件描述符,所以可以通信。pipe()/*#include <unistd.h>int pipe(int pipefd[2]);功能: 创建一个命名管道来进程间通信参数: - int pipefd[2]:传出参数 -pipefd[0] : 读端 -pipefd[1] ; 写端返回值: - 成功: 0 - 失败: -1, 并且设置错误号注意: 只能在亲缘关系进程间通信 ...原创 2021-11-26 19:25:45 · 385 阅读 · 0 评论 -
进程退出、孤儿进程、僵尸进程
exit()/*//Linux 系统库#include <unistd.h>void _exit(int status); -参数: status:进程退出时的状态信息,父进程挥手子进程的时候可以获取// 标准C库#include <stdlib.h>void _Exit(int status);*/#include <stdio.h>#include <unistd.h>#include <stdl.原创 2021-11-20 15:44:56 · 2379 阅读 · 1 评论 -
Linux:进程创建
fork()/*#include <sys/types.h>#include <unistd.h>pid_t fork(void); 作用: 创建子进程 返回值: fork()的返回值会返回两次:父和子进程都会有返回值 成功: 父进程里返回创建的子进程的id 子进程里面返回0 失败: 父进程返回-1 注:通.原创 2021-11-18 15:46:58 · 493 阅读 · 0 评论