文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 进程原语(二)

exec函数1. exec函数作用 用fork创建子进程后执行的是和父进程相同的程序,可以通过if判断pid的返回值让子进程执行不同的代码分支,这样设计程序不灵活。通过调用exec函数,用新程序将子进程的用户空间代码和数据替换,直接去执行新程序。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。2. execc族函数原型其实有六种以exec开头的函数,统称exec函数:1. ....

Linux系统应用编程 --- 进程原语(二)
文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 进程原语(一)

进程原语一. fork函数1. 函数原型pid_t fork(void);子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。2. 以具体的程序讲解fork函数特点第一段代码1. #include <stdio.h> 2. #include <sys/types.h> 3. #include <unistd.h> 4. 5. int main.....

Linux系统应用编程 --- 进程原语(一)
文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 虚拟地址空间的理解

1. 操作系统会为每个进程分配0-3G的虚拟空间,3G-4G是留给内核空间的2. 假设物理内存为2G,那个操作系统如何给每个进程分配内核空间和用户空间?1、为什么不同进程的内核空间可以共用?因为应用层是无法修改内核空间的内容的2、操作系统是怎么管理内存空间的?(1)虚拟内存映射表,按照page去管理内存的,1page = 4096bytes所以我们在malloc内存的时候,如果先malloc20....

Linux系统应用编程 --- 虚拟地址空间的理解
文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- ext2文件系统

参考链接:https://www.linuxidc.com/Linux/2019-08/159814.htmhttps://www.linuxidc.com/Linux/2019-08/159815.htm 1. 文件系统的概念文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统....

Linux系统应用编程 --- ext2文件系统
文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 文件I/O实现输出重定向

实现输出重定向,当用C标准printf打印 时,打印到指定的output.log文件思路:1)printf默认输出到标注输出文件描述符指向的终端2)关闭标准输出文件描述符,那么新建文件的文件描述符就替代了标准输出文件描述符。1. #include <sys/stat.h> 2. #include <sys/types.h> 3. #include <fcntl.h&a...

文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 文件I/O

1. 文件描述符Linux系统将所有设备都当作文件来处理,而Linux用文件描述符来标识每个文件对象。文件描述符是一个非负整数,用于唯一标识计算机操作系统中打开的文件。 它描述了数据资源,以及如何访问该资源。下面这张图, 不同进程拥有自己独立的PCB,PCB是存放进程管理和控制信息数据的一个结构体,其中包含了管理文件的指针,每个进程都会默认打开三个文件,对应文件描述符为0,1,2.标准输入(st....

Linux系统应用编程 --- 文件I/O
文章 2023-07-10 来自:开发者社区

Linux系统应用编程---线程同步基础(互斥量、死锁、读写锁)

一、线程为什么要同步1.共享资源,多个线程都可对共享资源操作2.线程操作共享资源的先后顺序不确定3.处理器对存储器的操作一般不是原子操作 二、互斥量mutex1、临界资源与临界区的概念任务之间的互斥与同步关系存在的根源在于临界资源。临界资源是指在同一时刻只允许有限个(通常只有一个)任务可以访问资源(读/写),通常包括硬件资源(处理器/内存/存储器/其他外围设备)和软件资源(共享代码段/....

文章 2023-07-10 来自:开发者社区

Linux系统应用编程---信号

一、信号产生种类1、特殊终端按键Ctrl+C                  SIGINTCrtl+Z                  SIGTSTPCtrl+\       &...

Linux系统应用编程---信号
文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 信号处理函数(sigaction实现信号捕捉设定)

sigaction实现信号捕捉1. #include <signal.h> 2. 3. int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);struct sigaction 定义:1. struct sigaction { 2. 3. void (*sa_handler)...

Linux系统应用编程 --- 信号处理函数(sigaction实现信号捕捉设定)
文章 2023-07-10 来自:开发者社区

Linux系统应用编程 --- 信号处理函数(sigprocmask、sigpending函数)

信号集处理函数1. int sigemptyset(sigset_t *set); 清空信号集,将信号集全部置0 2. 3. int sigfillset(sigset_t *set); 将信号集全部置1 4. 5. int sigaddset(sigset_t *set, int...

Linux系统应用编程 --- 信号处理函数(sigprocmask、sigpending函数)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Linux宝库