Linux系统编程
文章平均质量分 87
乌有先生ii
劝君更尽一杯酒,西出阳关无故人
展开
-
回调函数(结合Linux信号机制)
如果一个函数作为另一个函数的参数传入,这种函数就可以称为回调函数(这句话并不严谨,但为了说明问题可以这么理解)。C语言里面,一般就是一个函数的参数列表中有函数指针,函数指针指向的函数就是一个回调函数。原创 2022-10-23 16:00:16 · 1118 阅读 · 0 评论 -
【Linux系统编程】命名管道与共享内存
共享内存是最快的IPC形式,是系统在内存中开辟一块内存,用于进程之间共享地进行操作。这片内存区域经过页表映射到通信进程各自的地址空间中,不同的进程可以通过操作自己的地址空间,来操作共享内存。原创 2022-10-23 15:56:37 · 592 阅读 · 0 评论 -
【Linux系统编程】进程通信之管道
管道是Unix中最古老的进程间通信方式,我们把从一个进程连接到另一个进程的数据流叫做管道。在Linux中,| 符号被用来代表管道。因为在Linux中,不同的命令,如ps,ls,grep等命令的本质都是可执行程序,| 前面的命令前面的命令通常会输出大量的结果,这些结果将会交由 | 后面的命令继续处理。原创 2022-10-23 15:48:54 · 614 阅读 · 0 评论 -
【Linux系统编程】文件IO与文件系统
前言 在学习C语言时,我们接触过如fopen、fclose、fseek、fgets、fputs、fread、fwrite等函数,实际上,这些函数是对于底层系统调用的封装。C默认会打开三个输入输出流,分别是stdin,stdout,stderr。执行man stdin后,会展示如下描述: #include <stdio.h> extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; 可以看到,这三个流类型都是原创 2021-08-22 23:51:24 · 521 阅读 · 15 评论 -
【Linux系统编程】守护进程
在了解守护进程之前,需要先知道什么是什么是终端?什么是作业?什么是进程组?什么是会话?原创 2022-10-23 16:03:24 · 304 阅读 · 0 评论 -
【Linux系统编程】进程创建、终止、等待、替换
1.进程创建 在上一节讲解进程概念时,我们提到fork函数是从已经存在的进程中创建一个新进程。那么,系统是如何创建一个新进程的呢?这就需要我们更深入的剖析fork函数。 1.1 fork函数的返回值 调用fork创建进程时,原进程为父进程,新进程为子进程。运行man fork后,我们可以看到如下信息: #include <unistd.h> pid_t fork(void); fork函数有两个返回值,子进程中返回0,父进程返回子进程pid,如果创建失败则返回-1。 实际上,当我们调用fork原创 2021-08-16 01:35:53 · 773 阅读 · 5 评论 -
【Linux系统编程】进程基本概念与进程地址空间
文章目录1. 什么是进程?2. 用什么来描述进程?3. PID、PPID4. fork函数5. 进程的状态6. 进程地址空间6.1 mm_struct6.2 写时拷贝6.3 为什么要有进程地址空间?6.3 为什么要有进程地址空间? 1. 什么是进程? 在了解进程概念之前,我们需要先知道程序的概念。 程序,是指编译好的二进制文件,这些文件在磁盘上,并不占用系统资源。 进程,指的是一个程序的执行实例,是操作系统分配系统资源的单位,这里的系统资源有CPU时间,内存等。当程序运行起来,产生一个进程。 也就是说,相比原创 2021-08-14 19:39:18 · 367 阅读 · 2 评论 -
【Linux系统编程】Linux常见命令
文章目录01. ls02.pwd03.cd04.touch05.mkdir06.rm07.cp08.mv09.cat、more、less10.head 和tail11.date12.cal13.find -name14.grep15.useradd、 userdel -r16.su -、 sudo17.zip、unzip18.chmod19.chown20.chgrp 01. ls 指令用于显示该目录下的子文件 ls -a:显示目录下的所有文件(包括隐藏文件) ls -l :显示目录下的文件的详细信息 ls原创 2021-08-24 21:12:27 · 406 阅读 · 8 评论