随笔分类 -  Linux

Linux相关知识点记录
linux 有名管道
摘要:有名管道: 匿名管道,由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道(FIFO),也叫命名管道、FIFO文件 有名管道(FIFO)不同于匿名管道之处在于它提供了一个路径名与之关联,以 FIFO 的文件形式存在于文件系统中,并且其打开方式与打开一个普通文件是一样的,这样即 阅读全文

posted @ 2023-09-23 17:37 廿陆 阅读(101) 评论(0) 推荐(0) 编辑

linux 管道的读写特点
摘要:管道的读写特点: 使用管道时,需要注意一下几种特殊的情况(假设都是阻塞I/O操作) 1.所有的指向管道写端的文件描述符都关闭了(管道写端引用计数为0),有进程从管道的读端读数据,那么管道中剩余的数据被读取以后,再次read会返回0,就像读到文件末尾一样. 2.如果有指向管道写端的文件描述符没有关闭( 阅读全文

posted @ 2023-09-23 11:26 廿陆 阅读(44) 评论(0) 推荐(0) 编辑

linux 进程间通信 匿名管道
摘要:进程间通信概念 进程是一个独立的资源分配单元,不同进程 (这里所说的进程通常指的是用户进程) 之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源 但进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信 (IPC: Inter Processes Comm 阅读全文

posted @ 2023-09-20 10:54 廿陆 阅读(31) 评论(0) 推荐(0) 编辑

linux wait函数 : 处理僵尸进程(进程回收)
摘要:进程回收 在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。但是仍然为其保留一定的信息,这些信息主要指进程控制块 PCB 的信息(进程号、退出状态、运行时间等) 父进程可以通过调用 wait 或 waitpid 得到它的退出状态同时彻底清除这个进程。 wait() 和 w 阅读全文

posted @ 2023-09-19 17:33 廿陆 阅读(203) 评论(0) 推荐(0) 编辑

linux进程退出 孤儿进程 僵尸进程
摘要:进程退出 #include <stdlib.h> void exit(int status); #include <unistd.h> void _exit(int status); 1 /* 2 #include <stdlib.h> 3 void exit(int status); 4 5 #i 阅读全文

posted @ 2023-09-19 11:15 廿陆 阅读(20) 评论(0) 推荐(0) 编辑

linux GDB多进程调试 exec函数族
摘要:父子进程之间的关系: 区别: 1.fork()函数的返回值不同 父进程中: >0(栈内存) 返回的子进程ID 子进程中: =0(栈内存) 2.PCB中的一些数据不同 当前进程的PID 当前进程的父进程的ID PPID 信号集不同 共同点: 某些状态下:子进程刚被创建出来,还没有执行任何的写数据的操作 阅读全文

posted @ 2023-09-18 10:51 廿陆 阅读(109) 评论(0) 推荐(0) 编辑

linux进程创建 fork
摘要:进程创建 系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。 1 /* 2 man 2 fork 3 fork - create a child process 4 #include <sys/types.h> 5 #include <unistd.h> 阅读全文

posted @ 2023-09-15 11:16 廿陆 阅读(29) 评论(0) 推荐(0) 编辑

linux进程状态转换
摘要:进程的状态 进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型中,进程状态分为三个基本状态,即就绪态,运行态,阻塞态。在五态模型中,进程分为新建态、就绪态,运行态,阻塞态,终止态。 ◼ 运行态:进程占有处理器正在运行 ◼ 就绪态:进程具备运行条件,等待系统分配处 阅读全文

posted @ 2023-09-14 11:24 廿陆 阅读(115) 评论(0) 推荐(0) 编辑

linux进程概述 ulimit 显示资源上限
摘要:程序和进程 程序:是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程: ◼ 二进制格式标识:每个程序文件都包含用于描述可执行文件格式的元信息(大小、修改时间等)。内核利用此信息来解释文件中的其他信息。(Linux: ELF可执行连接格式) ◼ 机器语言指令:对程序算法进行编码。 ◼ 程序 阅读全文

posted @ 2023-09-13 19:00 廿陆 阅读(53) 评论(0) 推荐(0) 编辑

linux 目录遍历函数 opendir readdir closedir dup dup2 fcntl
摘要:目录遍历 opendir readdir closedir 1 /* 2 man 3(标准C库函数) 3 man 3 opendir man 3 readdir man 3 closedir 4 #include <sys/types.h> 5 #include <dirent.h> 6 DIR* 阅读全文

posted @ 2023-09-13 12:50 廿陆 阅读(58) 评论(0) 推荐(0) 编辑

linux 目录操作函数 mkdir rename chdir
摘要:mkdir 1 /* 2 man 2 mkdir:linux系统函数 3 #include <sys/stat.h> 4 #include <sys/types.h> 5 int mkdir(const char* pathname, mode_t mode); 6 作用:创建一个目录 7 参数: 阅读全文

posted @ 2023-09-12 16:56 廿陆 阅读(49) 评论(0) 推荐(0) 编辑

linux 文件属性操作函数 access chmod truncate
摘要:access:判断某个文件是否有某个权限,或者某个权限是否存在 1 /* 2 #include <unistd.h> 3 int access(const char* pahtname, int mode); 4 作用:判断某个文件是否有某个权限,或者某个权限是否存在 5 参数: 6 - pathn 阅读全文

posted @ 2023-09-12 15:32 廿陆 阅读(15) 评论(0) 推荐(0) 编辑

linux案例 模拟 ls -l
摘要:ls -l //当前目录下文件的信息 文件权限 硬链接数 所有者 所在组 大小 最后修改时间 文件名称 ls -l 文件名称 //具体文件的信息 1 #include <stdio.h> 2 #include <sys/types.h> //stat 3 #include <sys/stat.h> 阅读全文

posted @ 2023-09-12 11:39 廿陆 阅读(5) 评论(0) 推荐(0) 编辑

Linxu系统IO函数 stat 和 lstat 函数
摘要:stat 和 lstat函数 作用:获取一个文件相关的一些信息 st_mode 1 /* 2 stat: man 2 stat 3 #include <sys/types.h> 4 #include <sys/stat.h> 5 #include <unistd.h> 6 7 int stat(co 阅读全文

posted @ 2023-09-12 10:56 廿陆 阅读(25) 评论(0) 推荐(0) 编辑

Linxu系统IO函数 read和write lseek
摘要:read 和 write 函数 1 /* 2 #include <unistd.h> 3 ssize_t read(int fd, void* buf, size_t count); 4 参数: 5 - fd:文件描述符,open得到的,通过这个文件描述符操作某个文件 6 - buf:读取数据存放的 阅读全文

posted @ 2023-09-11 18:06 廿陆 阅读(19) 评论(0) 推荐(0) 编辑

标准C库函数 和 Linxu系统IO函数 open和close 虚拟地址空间
摘要:C库的IO函数 C库函数通过 FILE指针 来访问文件并索引到对应磁盘文件, FILE文件指针(结构体) 文件描述符:定位文件 文件读写指针:对数据进行操作 读写指针 缓冲区:提高效率 FILE 是 _IO_FILE 的重定义 1 struct _IO_FILE 2 { 3 int _flags; 阅读全文

posted @ 2023-09-11 11:21 廿陆 阅读(24) 评论(0) 推荐(0) 编辑

GDB调试
摘要:什么是 GDB? ◼ GDB 是由 GNU 软件系统社区提供的调试工具,同 GCC 配套组成了一套完整的开发环境,GDB 是 Linux 和许多类 Unix 系统中的标准开发环境。 ◼ 一般来说,GDB 主要帮助你完成下面四个方面的功能: 1. 启动程序,可以按照自定义的要求随心所欲的运行程序 2. 阅读全文

posted @ 2023-09-05 17:36 廿陆 阅读(9) 评论(0) 推荐(0) 编辑

Makefile
摘要:什么是Makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile文件定义了一系列的规则来指定哪些文件需要先编译,那些文件需要后编译,那些文件需要重新编译,甚至于进行更复杂的功能操作,因为Makefile文件就像一个Shell脚本一样,也可以执行操作系统的 阅读全文

posted @ 2023-09-05 11:25 廿陆 阅读(18) 评论(0) 推荐(0) 编辑

linux 动态库的制作与使用
摘要:命名规则: Linux:libxxx.so 生成为 libxxx.so 使用则为 xxx lib: 前缀(固定) xxx: 库的名字,自起 .so: 后缀(固定) 在Linux下是一个可执行文件 Windows: libxxx .dll 动态库的制作: gcc得到 .o 文件 得到和位置无关的代码( 阅读全文

posted @ 2023-09-04 17:00 廿陆 阅读(41) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示