系统编程

2024/4/11 19:05:06

[Linux系统编程]信号(三)

距离上一次利用高并发技术实现360度行车记录仪功能已经过去半年了。开始写一系列关于系统编程和网络编程内容进行总结。 温故而知新,欢迎大家讨论学习。 10-06 复习时间 文章目录1 信号的概念2 信号的共性3 信号的机制4 与信号相关的事件和状态5 信号四要素6…

[Linux系统编程]进程通信-消息队列(六)

文章主要对消息队列的函数使用和案例实现进行总结,用于个人复习 09-05 注意消息队列的创建和访问命令的不同 本质为链表,结构体的参数一long类型用来指定类型。可以指定发送和接受的类型。 文章目录1 消息队列的简介2 linux 下消息队列查看和删除指令3消…

[Linux系统编程]线程同步(五)

距离上一次利用高并发技术实现360度行车记录仪功能已经过去半年了。开始写一系列关于系统编程和网络编程内容进行总结。 温故而知新,欢迎大家讨论学习。 2021-09-08 复习内容: 复习代码1 man 1 man 2 man 3 分别是标准命令 系统调用 和 库函数编译…

[Linux系统编程]守护进程/线程(四)

距离上一次利用高并发技术实现360度行车记录仪功能已经过去半年了。开始写一系列关于系统编程和网络编程内容进行总结。 温故而知新,欢迎大家讨论学习。 2021-09-05 补充 1、dup2与dup区别是dup2可以用参数newfd指定新文件描述符的数值。若参数newfd已经被程…

线程的概念+线程函数API

C线程 有关线程的简单实现 #include<stdio.h> #include<stdlib.h> #include<unistd.h> //定义线程函数&#xff08;固定&#xff09;--void * void *pth_fun(void *pth_arg){while(1){printf("pthread\n");sleep(1);}return NULL; } int main(){…

【Linux系统编程】进程状态

文章目录 前言1. 准备工作2. 阻塞、挂起状态的了解2.1 阻塞2.2 挂起 3. 看看Linux内核源代码怎么说4. R运行状态&#xff08;running&#xff09;5. S休眠状态&#xff08;sleeping)6. D不可中断休眠状态7. T暂停状态&#xff08;stopped&#xff09;8. t 追踪暂停状态 (tracin…

【APUE】并发 — 线程

目录 一、线程的概念 1.1 定义 1.2 POSIX 线程标准 1.3 线程标识 1.4 相关函数 1.5 一些补充 二、线程的创建、终止与取消 2.1 创建 2.2 终止 2.2.1 return 2.2.2 pthread_exit 2.3 取消 2.3.1 函数介绍 2.3.2 禁止线程被取消 2.3.3 线程取消方式 2.4 清…

进程 的初识

程序和进程有什么区别 程序是静态的概念&#xff0c;gcc xxx.c -o pro 磁盘中生成的文件&#xff0c;叫做程序。进程是程序的一次运行活动&#xff0c;通俗点的意思就是程序跑起来了&#xff0c;系统中就多了一个进程。 如何查看系统中有哪些进程 使用 ps 指令&#xff08;完整…

Linux - fd文件描述符和文件详解

​​​​​​​ ​​​​​​​ ​​​​​​​ 感谢各位 点赞 收藏 评论 三连支持 本文章收录于专栏【Linux系统编程】 ❀希望能对大家有所帮助❀ 本文章由 风君子吖 原创 ​​​​​​​ ​​​​​​​ ​​​​​​​ …

Linux 零拷贝splice函数

Linux splice 函数简介 splice 是 Linux 系统中用于在两个文件描述符之间移动数据的系统调用。它的主要作用是在两个文件描述符之间传输数据&#xff0c;而无需在用户空间进行数据拷贝。也是零拷贝操作. 函数原型 #include <fcntl.h> ssize_t splice(int fd_in, loff_…

【Linux】Linux中的环境变量及其意义

目录 一、环境变量的概念 1、让自己写的可执行程序无需路径即可执行的方法 1.1将可执行程序拷贝至/usr/bin/目录下 1.2将test的绝对路径添加至PATH中 二、环境变量相关的命令 三、getenv()&#xff08;获取环境变量&#xff09; 四、main函数命令行参数的解析及意义 1、…

使用树莓派学习Linux系统编程的 --- 库编程(面试重点)

在之前的Linux系统编程中&#xff0c;学习了文件的打开&#xff1b;关闭&#xff1b;读写&#xff1b;进程&#xff1b;线程等概念.... 本节补充“Linux库概念 & 相关编程”&#xff0c;这是一个面试的重点&#xff01; 分文件编程 在之前的学习中&#xff0c;面对较大的…

Day06(上) Liunx高级系统设计6-消息队列

概述 消息队列是消息的链表&#xff0c;存放在内存中&#xff0c;由内核维护 特点 1 、消息队列中的消息是有类型的。 2 、消息队列中的消息是有格式的。 3 、消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取&#xff0c;编程时可以按消息的类型读取。 …

Day02 Liunx高级程序设计2-文件IO

系统调用 概念 是操作系统提供给用户使其可以操作内核提供服务的一组函数接口 用户态和内核态 其中 ring 0 权限最高&#xff0c;可以使用所有 CPU 指令&#xff0c; ring 3 权限最低&#xff0c;仅能使用 常规 CPU 指令&#xff0c;这个级别的权限不能使用访问硬件资…

Linux 网络编程 和 字节序的概念

网络编程概述 不同于之前学习的所有通讯方法&#xff0c;多基于Linux内核实现&#xff0c;只能在同一个系统中不同进程或线程间通讯&#xff0c;Linux的网络编程可以实现真正的多机通讯&#xff01; 两个不相关的终端要实现通讯&#xff0c;必须依赖网络&#xff0c;通过地址…

Linux socket网络编程概述 和 相关API讲解

socket网络编程的步骤 大体上&#xff0c;连接的建立过程就是&#xff1a;服务器在确定协议类型后&#xff0c;向外广播IP地址和端口号&#xff0c;并监听等待&#xff0c;直到客户端获取了IP地址和端口号并成功连接&#xff1a; 使用socket来进行tcp协议的网络编程的大体步骤…

Linux系统编程之进程通信

Linux系统编程之进程通信 文章目录Linux系统编程之进程通信概述 and 学习目标一、进程间通信&#xff08;的概念&#xff09;是什么&#xff1f;1.1 什么是进程间通信&#xff1f;1.2 进程间通信的方式&#xff1f;二、管道-pipe2.1 管道的概念2.2 管道的原理2.3 管道的局限性2…

Day06(下) Liunx高级系统设计7-磁盘映射与共享内存

磁盘映射MMAP 概述 存储映射 I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相 映射。于是当从缓冲区中取数据&#xff0c;就相当于读文件中的相应字节。于此类似&#xff0c;将数据存 入缓冲区&#xff0c;则相应的字节就自动写入文件。这样&#xff…

关于一篇知乎答案的重现

〇、前言 早上在逛知乎的时候&#xff0c;瞥见了一篇答案&#xff1a;如何通俗解释Docker是什么&#xff1f;感觉很不错&#xff0c;然后就耐着性子看了下&#xff0c;并重现了作者的整个过程。但是并不顺利&#xff0c;记载一下这些坑。嫌麻烦的话可以直接clone 研究&#xf…

exec族函数

本节学习exec族函数&#xff0c;并大量参考了以下链接&#xff1a; linux进程---exec族函数(execl, execlp, execle, execv, execvp, execvpe)_云英的博客-CSDN博客 exec族函数函数的作用 我们用fork函数创建新进程后&#xff0c;经常会在新进程中调用exec函数去执行另外一个程…

[Linux系统编程]文件IO(一)

距离上一次利用高并发技术实现360度行车记录仪功能已经过去半年了。开始写一系列关于系统编程和网络编程内容进行总结。 温故而知新&#xff0c;欢迎大家讨论学习。 文章目录1 系统调用1.1 什么是系统调用1.2什么是库函数1.3 将hello写入到文件1.txt流程1.4 为什么要有缓…

[Linux系统编程]进程通信-共享内存(七)

文章主要对共享内存的函数使用和案例实现进行总结&#xff0c;用于个人复习 2021-09-09 shmget的参数三如果要创建新的共享内存&#xff0c;需要使用IPC_CREAT&#xff0c;IPC_EXCL&#xff0c;如果是已经存在的&#xff0c;可以使用IPC_CREAT或直接传0。所有我们常常传入0用来…

[Linux系统编程]Makefile项目管理

分别放在若干个目录中&#xff0c;makefile定义了一系列的规则 来指定哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff0c;甚至于进行更复杂的功能操作&#xff0c;因为 makefile就像一个Shell脚本一样&#xff0c;也可以执行操作系…

[Linux系统编程/网络编程] 笔记目录

距离上一次利用高并发技术实现360度行车记录仪功能已经过去挺久了。着手写一系列关于系统编程和网络编程内容进行总结回顾。 温故而知新&#xff0c;希望大家给出指点建议。 Linux系统编程 [Linux系统编程]文件IO&#xff08;一&#xff09; [Linux系统编程]进程&#…

[Linux系统编程]进程(二)

距离上一次利用高并发技术实现360度行车记录仪功能已经过去半年了。开始写一系列关于系统编程和网络编程内容进行总结。 温故而知新&#xff0c;欢迎大家讨论学习。 第一次复习时间2021-09-02 补充点&#xff1a; 虚拟地址空间的概念 僵尸进程和孤儿进程更为具体的描述 …

Linux系统编程之waitpid函数详解

5.1 为什么要进行进程资源的回收 当一个子进程退出之后&#xff0c;该进程能够回收自己的用户区的资源&#xff0c;但是不能回收内核空间区的PCB&#xff08;process control block 进程控制块&#xff09;资源。 &#xff08;即&#xff1a;子进程自己本身是无法完成对内核的…

无名管道 / 有名管道(FIFO)

根据上节所讲就可以了解到&#xff1a;管道其实就是实现进程间通讯IPC中的一种类型方法 基本概念&#xff08;无名管道&#xff09; 管道是一种最基本的IPC机制&#xff0c;通常指无名管道&#xff0c;也是UNIX系统IPC最古老的形式。管道只能作用于有血缘关系的进程之间&…

基于Linux并结合socket网络编程的ftp服务器的实现

项目需求 客户端能够通过调用“get”指令&#xff0c;来获取服务器的文件客户端能通过“server_ls”指令&#xff0c;来获取服务器路径下的文件列表客户端能通过“server_cd”指令&#xff0c;进入服务器路径下的某文件夹客户端可以通过“upload”指令&#xff0c;上传自己的本…

进程间的通信

进程的通信&#xff0c;光是听概念就知道这是一个非常重要的知识点&#xff0c;但是之前学习的概念其实都无法实现真正意义上的进程间的通信&#xff1a; 子进程调用exit或Exit或_exit&#xff0c;然后父进程通过wait可以知道其状态&#xff0c;这虽然实现了消息的传递&#x…

Linux线程 --- 生产者消费者模型(C语言)

在学习完线程相关的概念之后&#xff0c;本节来认识一下Linux多线程相关的一个重要模型----“ 生产者消费者模型” 本文参考&#xff1a; Linux多线程生产者与消费者_红娃子的博客-CSDN博客 Linux多线程——生产者消费者模型_linux多线程生产者与消费者_两片空白的博客-CSDN博客…

Linux socket网络编程实战(tcp)实现双方聊天

在上节已经系统介绍了大致的流程和相关的API&#xff0c;这节就开始写代码&#xff01; 回顾上节的流程&#xff1a; 创建一个NET文件夹 来存放网络编程相关的代码&#xff1a; tcp服务端代码初步实现--上 这部分先实现服务器的连接部分的代码并进行验证 server1.c&#xff…

【APUE】高级I/O

目录 一、五大 IO 模型 1.1 完整的 IO 过程 1.2 阻塞 IO 1.3 非阻塞 IO 1.4 信号驱动式 IO 1.5 多路转接 1.6 异步 IO 二、有限状态机编程 2.1 基本思想 2.2 数据中继模型 2.3 数据中继实现 2.4 中继引擎实现 三、IO多路转接 3.1 select 3.2 poll 3.3 epoll …