最新 最热

【Linux线程】线程控制原语详细介绍

线程就是 Light weight process ,LWP,轻量级进程,在Linux环境下它仍然是进程,一个进程内部可以有多个线程,默认情况下一个进程内部有一个线程。不同的是,进程有自己的进程控制块PCB,并且拥有自己独立的地址空间;而线程虽然也...

2024-08-08
2

【Linux进程控制】二、进程控制——fork()系统调用深度刨析

fork()用于创建一个子进程,我们在shell下执行一个命令其实也是通过fork()实现的,fork()是Linux下最基本的一个系统调用。fork()最大的特点就是一次调用,两次返回,两次返回主要是区分父子进程,因为fork()之后将出现两个进程...

2024-08-08
5

【Linux进程控制】三、进程间的资源共享问题

实际上这是printf()函数缓冲区的机制造成的,缓冲区我们在Linux系统调用专题中已经讲过了。在系统调用时,遇到 '/n' 输出行缓冲,我们这里第一个printf()函数中没有 'n' 字符,所以第一个printf()函数...

2024-08-08
2

【Linux进程控制】四、exec函数族——进程替换详解

我们在使用fork()系统调用之后,创建出来的子进程是对父进程的复制,也就是说子进程和父进程执行的是相同的程序,虽然说父子进程可能执行的是不同的代码分支(if else语句),但是程序流程是一样。我们要想在新创建的子进程中执...

2024-08-08
5

【Linux进程控制】五、wait()函数——子进程回收

僵尸进程:子进程结束,父进程没有回收子进程的资源(PCB),这个资源必须要由父进程回收,否则就形成僵尸进程。

2024-08-08
4

【Linux系统调用API】四、与权限有关的函数

对比上面两次测试结果,这时候我们发现一个奇怪的现象,同一个文件1.txt在qq用户下使用access函数返回的是无写权限,但是在root用户下使用access函数返回的是有写权限,这是为什么呢?首先,我们通过 ls -l 命令来查看并分析一下...

2024-08-08
3

【Linux系统调用API】五、link系列函数

在执行程序时,参数oldpath和newpath不仅可以是文件名,也可以是带有路径的文件名。

2024-08-08
2

【Linux系统调用API】六、目录操作相关函数

首先,看测试结果中打印的内容,getcwd()函数获取到的路径确实是我们通过chdir()函数指定的路径,并且test路径从无到有增加了一个文件,也证明我们切换工作路径成功了。但是有些人可能会有一个疑惑,看途中的红色箭头标记,既然...

2024-08-08
2

【Linux系统调用API】七、errno()、strerror()、dup()、dup2()

errno可以理解为一个全局变量,它存储了出错信息。在下面三个路径可以看到errno相关的内容

2024-08-08
2

【Linux进程控制】一、进程概念与环境变量

每个进程在内核中都有一个进程控制块PCB来维护进程相关信息,在Linux内核中的进程控制块是task_struct结构体形式的,结构体定义可以在

2024-08-08
1