系统编程
文章平均质量分 85
yangpipi-
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
11.王道_workflow
/ 计数器//计数器减一// 阻塞主线程,直到按住Ctrl+Cint main()// 等待直到计数器减一freturn 0;原创 2025-05-15 10:32:40 · 943 阅读 · 0 评论 -
10.王道_HTTP
nlohmann/json是一个header-only的C++ json解析库,可以用于构造和解析JSON对象。键值必须是字符串数据-》字节流:序列化/编码字节流-》数据:反序列化。解码"sites":"site":"name":"王道论坛",},"site":},"site":"name":"微博",原创 2025-05-08 16:24:59 · 1194 阅读 · 0 评论 -
gcc和gdb和g++和makefile,CMake
当函数需要返回一个对象的时候,如果自己创建一个临时对象用户返回,那么这个临时对象会消耗一个构造函数(Constructor)的调用、一个复制构造函数的调用(Copy Constructor)以及一个析构函数(Destructor)的调用的代价。而如果稍微做一点优化,就可以将成本降低到一个构造函数的代价,这样就省去了一次拷贝构造函数的调用和依次析构函数的调用。这个选项告诉编译器生成一个包含源文件及其依赖的头文件的列表,而不是编译源文件。注意省略形式的前提时库文件在系统的库文件目录。默认编译选择的是第一个。原创 2024-11-18 09:23:21 · 1182 阅读 · 0 评论 -
9. 王道_进程池和线程池
系统编程,进程池,线程池原创 2025-04-14 16:43:15 · 1085 阅读 · 0 评论 -
8. 王道_网络编程
域名和IP地址的对应关系如何排查网络故障阿强断开重连:客户端终止服务端仍然可以接受新连接accept本质上是一个读操作,读的对象就是分配监听队列中的连接,所以可以使用select监听。这样就可以有新连接到来再做accept操作,这样服务器既可以处理旧连接的收发和新连接的建立当有多个客户端发送消息时,分不清是谁是谁,因为没有像TCP的netfd使用UDP的即时聊天断开连接对方不知道sendto可以发送长度为0的报当主动方要退出时原创 2025-04-08 14:57:47 · 831 阅读 · 0 评论 -
7. 王道_网络协议
MAC地址大小 48位 6字节IP地址 32位 4字节port 16位 2字节。原创 2025-03-30 19:33:53 · 800 阅读 · 0 评论 -
6.王道_线程
在创建所有线程之后立即销毁了条件变量和互斥量,这是不正确的,因为这些资源在线程运行期间还需要被使用。你应该将pthread_cond_destroy(&share.cond);和pthread_mutex_destroy(&share.mutex);这两行移动到所有线程结束(即调用pthread_join之后)的位置。设置mutex(检错锁和递归锁)的属性来避免第三种死锁类型。只有自己加锁,再加锁才会报错,别人加锁,我再加锁不会报错。作业,A再B之前执行。原创 2025-03-29 09:35:28 · 549 阅读 · 0 评论 -
5.王道_信号
通常这种状态出现在进程必须不受干扰地等待或者等待事件很快会发生的 时候出现,比如进程正在等待磁盘读写数据的时候。内核不可中断状态是进程等待态的一种形式。mask刚开始为空,当递送信号的过程中会触发一个临时屏蔽,mask会包含这个触犯的信号,当从递送返回的时候mask会删除这个信号。屏蔽的过程中如果产生信号会放入pending中.pending只放一个信号。处于内核不可中断状态(进程控制块的state成员此时为TASK_UNINTERRUPTIBLE)的进程。处于这种的状态的进程在 ps 中显示为。原创 2025-03-23 10:56:41 · 323 阅读 · 0 评论 -
4.王道_进程间通信
共享内存可以在两个互不关联的进程之间进行通信,只需要彼此之间知道共享内存的键就好了。先后执行shm_w和shm_r程序,后一个进程可以读取共享内存中前一个进程写入的信息。在fork之前打开的文件对象,在fork之后是共享的。只读不写会阻塞,只写不读不会阻塞。原创 2025-03-22 09:18:42 · 456 阅读 · 0 评论 -
3.王道_进程
粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。原创 2025-03-20 19:18:09 · 992 阅读 · 0 评论 -
Linux系统程序设计--7.进程间的通信
总共有7种文件类型。原创 2025-03-17 11:19:54 · 625 阅读 · 0 评论 -
2.王道_文件操作
磁盘中的文件设备 — 硬件管道 – 通信简化操作注意在一个返回值是void类型的函数中调用的宏不能有返回值,因为使用宏就是直接替换,有返回值的宏被调用,就相当于无返回值的函数返回值了if!exit1;if==perror;exit1;原创 2025-03-16 10:45:34 · 866 阅读 · 0 评论 -
1.王道_常用命令
1.王道_常用命令原创 2025-02-18 19:33:10 · 922 阅读 · 0 评论 -
8. 网络编程
msg.h// 协议头部// 验证码//协议体部//数据}MSG;/** 发送一个基于自定义协议的message,发送的数据存放在buff中* *//*读取一个基于自定义协议的message。读取的数据存放在buff中* */#endifmsg.c// 计算校验码i++)i++)return s;/** 发送一个基于自定义协议的message,发送的数据存放在buff中* */return -1;/*读取一个基于自定义协议的message。原创 2025-01-29 09:05:36 · 552 阅读 · 0 评论 -
Linux系统程序设计--6.线程
线程基本概念刚创建的进程默认有一个线程,成为主控线程(主线程)Linux线程实现线程标识Linux线程的创建和终止pthread_create龟兔赛跑案例#include<stdio.h>#include<stdlib.h>#include<pthread.h>#include<math.h>void * th_fn(void *arg){ int distance = (int)arg; int i ; for原创 2024-12-26 20:34:14 · 924 阅读 · 0 评论 -
Linux系统程序设计--5. 信号
Uninterruptible Sleep(不可中断睡眠,在ps命令中显示“D”)。处在这种状态的进程不接受外来的任何signal,这也是为什么之前我无法用kill杀掉这些处于D状态的进程,无论是“kill”, “kill -9”还是“kill -15”,因为它们压根儿就不受这些信号的支配。D Uninterruptible Sleep.等待磁盘IO。信号0为空信号,一般用来检测特定的进程是否存在。Z Zombie.进程已经结束,仅映像名留存。当无人处理时,子进程就会编程僵尸进程。上述是通过键盘发送信号。原创 2024-11-27 19:19:24 · 1030 阅读 · 0 评论 -
Linux系统程序设计--4.进程
父进程存在,但是子进程终止,其资源没有被系统回收(task_strct)就会称为僵尸进程,但当父进程结束终止时,僵尸进程会被init进程领养称为孤儿进程,然后被init回收。注意:程序中输出的都是虚拟地址。虚拟地址是直接复制过来的,所以地址是相同的。带p的,pathname绝对路径和相对路径均可以,不带p的只能是绝对路径。注意:出来带p的exev函数外,其他的pathname必须带绝对路径。父进程15811先终止,然后子进程15812被init进程领养。判断进程在终止之前是否暂停过。使用kill异常终止。原创 2024-11-24 16:03:42 · 1141 阅读 · 0 评论 -
Linux系统程序设计--3. 文件操作
dpl。原创 2024-11-10 16:03:00 · 443 阅读 · 0 评论 -
Linux系统程序设计--2. 文件I/O
文件I/O标准C的I/OFILE结构体下面只列出了5个成员可以观察到,有些函数没有FILE类型的结构体指针例如printf主要是一些标准输出,因为其内部用到了stdin,stdout,stderr查找文件所在的位置:find \ -name stat.h查找头文件所在的位置。可以使用gcc#include <sys/stat.h>int main() { return 0;}gcc -M test.c代码文件src.c的目标文件原创 2024-11-10 10:56:06 · 2094 阅读 · 0 评论 -
Linux系统程序设计(1)
Linux系统程序设计--1. 简介原创 2024-11-02 14:47:45 · 1186 阅读 · 0 评论 -
Linux系统编程
持续更新原创 2022-06-21 00:11:25 · 654 阅读 · 0 评论
分享