编辑
2023-10-25
linux
00

下面来讲解一下文件锁有关的API,它是进程级别的锁。

  1. fcntl():控制文件描述符的属性。
编辑
2023-10-25
汇编
00

写个简单的c程序

c
#include <stdio.h> int add(int a, int b) { int result = a + b; return result; }
编辑
2023-10-25
linux
00

在Linux系统中,进程的标识符(PID)是用来唯一标识正在运行的进程的数字。在这些PID中,有一些特殊的PID值,分别是0、1和2。它们有特殊的含义,表示了系统中的一些重要进程。

  1. PID 0 - 调度进程(swapper): PID 0 是内核中的一个特殊进程,通常被称为“调度进程”或“swapper”。在早期的Unix系统中,调度进程用于在运行的进程之间切换,并将CPU时间片分配给不同的进程。在现代Linux系统中,PID 0不再表示一个实际运行的进程,而是用来标识系统初始化的内核线程。

  2. PID 1 - init进程: PID 1 是系统中的第一个真实进程,通常是init进程。init进程是Linux系统中的第一个用户空间进程,它是所有其他进程的父进程,因此被称为“祖先进程”。init进程负责启动和管理系统的各种服务和进程。然而,在现代Linux发行版中,init进程通常由更先进的init系统(如SysV init、Upstart、systemd等)代替。

  3. PID 2 - kthreadd进程: PID 2 是内核线程kthreadd的PID。kthreadd是Linux内核中的一个线程,负责创建和管理内核线程,这些线程用于执行不同的内核任务。kthreadd是内核的一部分,它帮助管理其他内核线程的创建和终止。

编辑
2023-10-25
linux
00

今天执行strace的时候发现,不管哪个进程最后都会调用exit_group,就打算总结一下进程退出相关的系统调用。 ,查阅资料后发现有以下。

image.png 1. exit()

  • exit() 是标准 C 库中的函数,用于终止当前进程。
  • 函数原型:void exit(int status);
  • 调用 exit() 函数将终止当前进程,并将退出状态 status 返回给父进程。
  • exit() 函数将执行一系列清理操作,包括关闭文件描述符、刷新缓冲区以及执行通过 atexit() 注册的终止处理程序。
  • 可以使用 EXIT_SUCCESSEXIT_FAILURE 宏来表示进程的成功或失败状态。
编辑
2023-10-25
后端
00
go
go env -w GOPROXY=https://goproxy.io,direct