
linux系统编程
文章平均质量分 71
zzyczzyc
越努力越幸运
展开
-
Linux sigaction函数捕获键盘信号
文章目录sigaction 结构体sigaciton 函数sigaction 结构体下面的结构体需要传到sigaction函数内使用的struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int ...原创 2019-12-12 10:55:46 · 478 阅读 · 0 评论 -
linux系统编程-信号的产生
文章目录终端按键产生信号硬件异常产生信号kill函数/命令产生信号终端按键产生信号Ctrl + c : 2号信号(SIGINT)->终止 INT(interrupt)Ctrl + z : 20号信号(SIGTSTP)->暂停 T(Terminal)Ctrl + \ : 3号信号(SIGQUIT)-&amp原创 2018-11-15 21:33:32 · 197 阅读 · 0 评论 -
linux系统编程-信号的基础知识
信号程序不管执行到什么位置,都有暂停运行,去处理信号,处理完继续执行。与时钟中断类似(硬件中断),信号是软件层面上的中断(软中断)。每个进程收到的信号,都是由内核负责发送,内核处理的。与信号相关的时间和状态产生信号的5种方法:按键产生:Ctrl+c (终止一个进程,内核向进程发送信号,杀死了进程)系统调用:kill 、abort、raise软件条件产生:如定时器(al...原创 2018-10-29 09:29:32 · 380 阅读 · 0 评论 -
linux系统编程-mmap(共享内存)
mmap(共享映射区)void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);addr:建立映射区的首地址,由Linux内核指定。使用时,直接传递NULLlength:欲创建映射区的大小prot:映射区权限PROT_READ、PROT_WRITE、PROT_READ|PROT_W...原创 2018-10-09 22:33:50 · 677 阅读 · 0 评论 -
linux系统编程-管道
管道的概念管道是一种最基本的IPC(进程间通信)机制,作用于有缘关系的进程间,调用pipe() 即可创建一个管道。它有如下特质: 1. 本质是一个伪文件(实为内核缓冲区) 2. 由两个文件描述符引用,一个表示读,一个表示写 3. 规定数据从管道的写端流入管道,读端流出管道管道原理:内核使用环形队列,借助内核缓冲区(默认4K)实现。管道的局限性: 1.数据不能自己读,再...原创 2018-10-08 22:13:13 · 416 阅读 · 0 评论 -
linux系统编程-mmap实例:多进程拷贝文件
题目有一个超大文件,需要对其进行拷贝,为了提高效率,可以采用多进程并行拷贝的方法。采用mmap来实现。代码:当前文件下有大文件:myfile ,拷贝到当前 write(进程新建的) #include <stdio.h> #include <sys/mman.h> #include <fcntl.h> #include <sys/typ...原创 2018-10-13 22:15:01 · 897 阅读 · 7 评论 -
linux系统编程-回收进程
孤儿进程和僵尸进程的概念孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,此时init进程变成子进程的父进程,称为init进程领养孤儿进程。僵尸进程:进程终止,父进程尚未回收,子进程残留资源(PCB)存放于内核中,变成僵尸(Zombie)进程NOTE:僵尸进程不能使用kill命令清除,因为kill命令只是用来终止进程的,而僵尸进程已经终止。当父进程也死了,僵尸进程交给init...原创 2018-10-05 12:50:17 · 732 阅读 · 0 评论 -
linux系统编程-exec函数族
exec函数族fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。execlp函数int execlp(const char *fil...原创 2018-10-04 15:37:24 · 260 阅读 · 0 评论 -
linux系统编程-创建子进程fork
fork函数pid_t fork(void):创建一个子进程。返回值:子进程的PID返回给父进程 : 0 返回给子进程本身特性(1)所创建的进程复制父进程的代码段/数据段/BSS段/堆/栈等所有用户空间信息。(2)在内核中操作系统重新为其申请了一个PCB,并使用父进程的PCB进行初始化。(3)子进程执行的位置是fork()函数执行后的代码...原创 2018-10-03 14:23:43 · 1185 阅读 · 0 评论 -
linux系统编程-进程相关的基本概念
1. 程序和进程程序:指编译好的二进制文件,在磁盘上,不占用系统资源(CPU、内存)永久的,静态的。进程:是抽象的概念,占用系统资源,在内存中运行(程序运行产生进程)暂时的,动态的。例子:linux同时开两个终端,分别打开了同一个程序,但是对应的进程是不同的。2. 单道程序和多道程序单道程序设计:以前的dos系统,所有程序排队执行,执行完一个才轮到下一个多道程序设计:现代操作系统...原创 2018-10-01 21:56:44 · 269 阅读 · 0 评论