置顶「Linux/UNIX系统编程」检测进程的存在

#### 1. 发送空信号 &emsp;使用`kill()`时将`sig`(信号编码)指定为 0(空信号),可以检测指定进程 ID 的进程是否存在。<br><p></p> - 若调用失败,且`errno`为`ESRCH`,则说明目标进程不存在; - 若调用失败,且`errno`为`EPERM`,则说明进程存在,但无权向目标进程发送信号; - 若调用成功,则说明进程存在且有权向进程………


置顶「网络编程」Json Web Token(JWT)

### 一、身份认证 &emsp;常见的服务器端身份认证机制有两种,分别为:<br><p></p> #### 1.基于 session 的认证机制 &emsp;HTTP 是一种无状态的协议,这意味着若无登录态维持机制,则每次请求时都需要提交用户名与密码进行身份验证,而 session 机制就是用于在服务器端记录用户的登录状态。<br><p></p> &emsp;session 是一串在服务器生成………


置顶「Django」基于类的视图

&emsp;对于视图层,除了可以用函数作为视图(`FBV`),还可以用类作为视图(`CBV`),即在类中定义方法对应 http 的各种请求方法。使用 CBV 可以使用类具有的一些特性,如继承、多态等。 - 所有类视图在映射到 url 时,都需调用视图的`as_view()`类方法。 ```python path("/index",views.MyView.as_view(),name="MyVi………


「C++」标识符的存储类别、链接

&emsp;可用以下几种方式来描述程序中的标识符: - 存储期:描述通过标识符访问的对象的生存期; - 作用域/链接:描述标识符的可见性。 <br> ### 一、作用域和链接 #### 1. 作用域 &emsp;作用域描述程序中可访问标识符的区域。一个 C 变量的作用域可以是: - 块作用域 - 函数作用域 - 函数原型作用域 - 文件作用域 <p style="margin-top………


「Linux/UNIX系统编程」文件属性

&emsp;文件属性即为文件元数据。 <br> ### 一、获取文件信息 stat() &emsp;利用系统调用`stat()`、`lstat()`以及`fstat()`获取与文件有关的信息,其中大部分提取自文件 i 节点: ```c #include <sys/stat.h> int stat(const char *pathname, struct stat *statbuf); int………


「Linux/UNIX系统编程」文件系统

### 一、设备专用文件(设备文件) &emsp;设备专用文件与系统的某个设备相对应。在内核中,每种设备类型都有与之相对应的设备驱动程序,用来处理设备的所有 I/O 请求。设备驱动程序属于内核代码单元,用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统之间的互相翻译。由设备驱动程序提供的接口一致,隐藏了每个设备在操作方面的差异,从而满足了 I/O 操作的通用性。<br><p></p………


「Linux/UNIX系统编程」进程凭证

&emsp;每个 **进程** 都有一套用数字表示的用户 ID(UID)和组 ID(GID),有时也将这些 ID 称为进程凭证: - 实际用户 ID(real user ID)和实际组 ID(real group ID); - 有效用户 ID(effective user ID)和有效组 ID(effective group ID); - 保存的 set-user-ID(saved set-………


「Linux/UNIX系统编程」用户和组

- 每个系统用户都有唯一的用户名和与之相关的数值型用户标识符(UID)。 - 用户可以隶属一个或多个组,每个也都有唯一的名称与数值型的组标识符(GID)。 &emsp;用户和组 ID 的主要用途有二:① 确定各种系统资源的所有权;② 控制赋予进行访问上述资源的权限。如,每个文件都属于某个特定的用户和组,而每个进程也拥有相应的用户 ID 和组 ID 属性,两者结合决定了进程的所有者,以………


「Go」学习笔记 — 函数

### 一、定义 &emsp;函数通过关键字`func`定义,Go 函数的特性如下: - 无需前置声明 - 不支持命名嵌套定义 - 不支持同名函数重载 - 不支持默认参数 - 支持不定长变参 - 支持多返回值 - 支持命名返回值 - 支持匿名函数与必报 &emsp;**且 Go 函数属于第一类对象,具备相同签名(参数与返回值列表)的视作同一类型………


「Linux/UNIX系统编程」进程概述

### 一、 进程与程序 &emsp;程序是包含了一系列信息的文件,这些信息描述如何再运行时创建一个线程。<br><p></p> &emsp;进程是一个可执行程序的实例,是由内核定义的抽象实体,并为该实体分配用以执行程序的系统资源。<br><p></p> &emsp;从内核的角度看,进程由用户内存空间与一系列内核数据结构组成,其中用户内存空间包含了程序代码及所使用的变量,而内核数据结构则用………


「环境配置」Ubuntu 下添加用户并设为 root

#### 1. 添加用户 ```bash sudo useradd username -m ``` &emsp;命令后面加上`-m`选项才会在`home`路径下创建该用户的文件夹。<br><p></p> &emsp;执行`cat /etc/passwd`可以查看 passwd 文件中是否有刚才添加的用户名,若有则表示添加成功。 <br> #### 2. 设置密码 ```bas………


「Linux/UNIX系统编程」信号机制:高级特性

### 一、传递、处置及处理的特殊情况 &emsp;有一些信号,在传递、处置以及处理方面有着特殊的规则。 #### 1. SIGKILL 与 SIGSTOP &emsp;`SIGKILL`信号的默认行为是终止一个进程,`SIGSTOP`信号的默认行为是停止一个进程,**二者的默认行为均无法改变**。当试图去改变这些信号的处置时,将总是返回错误。同样,也**不能阻塞或忽略这两个信号**。<br><………


「Linux/UNIX系统编程」信号机制:信号处理器函数

&emsp;信号处理函数的声明为: ```c void handler(int sig); ``` &emsp;信号处理器函数应着力于降低竞争条件的引发,以下是信号处理器函数的常见设计: - 信号处理器函数设置全局性标志变量并退出,主程序对此标志进行周期性检查,一旦置位则采取对应的响应措施。(即将信号处理的操作移交到主程序中,避开处理器函数的可重入问题)(若主程序由于监听一个或多个文件………


「Linux/UNIX系统编程」信号机制

#### 一、信号概述 &emsp;信号是事件发生时对进程的通知机制,也称软件中断。信号的传递是异步行为,即无法预测信号到达的精确时间。<br><p></p> &emsp;信号可以由内核、另一进程或本进程发送给进程。一个具有合适权限的进程可以向另一进程发送信号,这可以作为 IPC 的一种方式。进程也可以向自身发送信号。然而,信号通常是由内核发送给进程的: - 硬件发生异常,即硬件检测到错误并通知………


「Go」学习笔记 — 类型

### 一、变量 &emsp;Go 是一门静态类型语言,变量总有固定的数据类型,类型决定了变量内存的长度和存储格式。 <br> #### 1. 定义变量 &emsp;关键字`var`用于定义变量,类型放在变量名后。<br><p></p> &emsp;变量定义时若无提供初始化则会自动初始化为二进制零值;若显示提供了初始值,则可省略变量类型,由编译器推断。 ```go var x int; //………


「C++」动态内存管理

&emsp;一般在程序中用到的内存分为三种:静态内存、栈内存与堆内存。<br><p></p> &emsp;分配在静态内存或栈内存中的对象由编译器自动创建与销毁。其中,静态内存用来保存: 1. 全局变量 2. `static`对象(全局与局部) 3. 类`static`数据成员 &emsp;栈对象又称自动变量,其仅在定义的程序块运行时存在,在控制流进入变量作用域时系统自动为其………


「计算机网络」网络层与 IP 协议

&emsp;网络层位于传输层与链路层之间,网络层主要的协议有: - 网际协议 IP - 地址解析协议 ARP:解决物理地址跟网络 IP 地址转换问题 - 网际控制报文协议 ICMP:错误消息通知 - 网际组管理协议 IGMP:Internet 组管理 <br> ### 一、IPv4 协议主要特点 &emsp; IP 是 TCP/IP 协议体系中网络层的协议。其主要特点如下: 1. **………


「读书笔记」《程序员的自我修养:链接、装载与库》

## [第一部分] 简介 ### 1. 简介 #### 北桥南桥 &emsp;计算机中,三个最重要的部件为:中央处理器 CPU、内存、I/O 控制芯片。<br><p></p> &emsp;**北桥芯片**是为了协调 CPU、内存和高速图形设备间的频率,以便它们之间可以高速地交换数据。<br><p></p> &emsp;于此同时,由于北桥芯片的速度非常高,所有相对低速的设备若直接连接到北桥,北桥同………


「数据库」SQL 集合运算

### 一、表的加减法 &emsp;具体而言,表、视图和查询的执行结果都是记录的集合。通过集合运算,可以得到两张表中记录的并集或公共记录的集合。且通过集合运算,能够使得结果具有集合的一些特点(唯一性)。 #### 集合运算的注意事项 1. **作为运算对象的列数必须相同** 2. **作为运算对象的记录中列的类型必须一致**(若必须使用不同数据类型的列时,可以使用`CAST`函数) 3. *………


「数据库」SQL 函数、谓词、CASE 表达式

### 一、函数 &emsp;SQL 中的函数可以分为以下几类: - 算数函数 - 字符串函数 - 日期函数 - 转换函数(用来转换数据类型与值) - 聚合函数(用来进行数据聚合) <br> #### 1. 算数函数 1. `ABS`:绝对值函数 ```java ABS(数值) ``` <br> 2. `MOD`:求余函数 ```java MOD(被除数,除数) ``` <br> 3.………