随笔分类 -  Linux系统编程

摘要:线程同步概念 互斥锁 读写锁 死锁 条件变量 本身不是锁,但通常结合锁来使用 生产者消费者模型 /************************************************************************* > File Name: producer_consu 阅读全文
posted @ 2022-03-02 19:58 蘑菇王国大聪明 阅读(20) 评论(0) 推荐(0) 编辑
摘要:什么是线程 注意: ps -Lf (进程名字)可以查看进程的线程 Linux内核实现线程的原理 首先先介绍一下三级页表: 线程创建 注意编译和链接的使用使用 -pthread表示引入线程库 /****************************************************** 阅读全文
posted @ 2022-03-02 19:57 蘑菇王国大聪明 阅读(35) 评论(0) 推荐(0) 编辑
摘要:概念 多个进程组在一起就是一个会话 创建会话 创建会话不能是组长进程,父进程创建子进程之后就会变成组长进程了 getsid函数和setsid函数 守护进程 创建守护进程: 阅读全文
posted @ 2022-03-01 20:30 蘑菇王国大聪明 阅读(26) 评论(0) 推荐(0) 编辑
摘要:信号的概念和机制 产生信号的方式 bg命令 :后台 fg命令:将后台执行恢复到前台 信号四要素和常规信号 常规信号一览表 kill函数和kill命令 alarm函数 一秒之后就会停下 setitimer函数 信号集操作函数 /************************************* 阅读全文
posted @ 2022-02-28 19:49 蘑菇王国大聪明 阅读(161) 评论(0) 推荐(0) 编辑
摘要:存储映射IO mmap函数 ! 其中文件的大小是小于等于真实文件大小,一般是等于。 权限一般是shared,private的话不会反应到磁盘上。 offset,默认0表示文件全部, 必须是4k的整数倍。 mmap基本使用 /************************************** 阅读全文
posted @ 2022-02-27 19:00 蘑菇王国大聪明 阅读(280) 评论(0) 推荐(0) 编辑
摘要:进程间通信方式 进程间之所以可以进行通信,是应为都在内核区,缓冲区的大小一般为4096字节 管道 管道使用函数 /************************************************************************* > File Name: pipe_t 阅读全文
posted @ 2022-02-27 16:12 蘑菇王国大聪明 阅读(137) 评论(0) 推荐(0) 编辑
摘要:孤儿进程 ps -ajx可以查看进程的父进程 僵尸进程 也就是子进程死亡父进程不管,不回收子进程,它就会变成僵尸进程,此时不能用kill杀死僵尸进程,这种情况只能杀死父进程,然后自己进程被init进程领养被释放 wait回收子进程 成功的话返回子进程进程id 通过下面的宏函数可以获取状态: 测试,使 阅读全文
posted @ 2022-02-27 10:52 蘑菇王国大聪明 阅读(59) 评论(0) 推荐(0) 编辑
摘要:execlp man execl: execl 执行ls 使用ps aux将数据写入一个文件中 使用dup2标准输出导入文件,标准输出会输出ps aux,再导入文件 阅读全文
posted @ 2022-02-26 18:36 蘑菇王国大聪明 阅读(27) 评论(0) 推荐(0) 编辑
摘要:原理 返回的值:父进程返回子进程PID,子进程返回0(类似成功创建的意思) fork基本代码 /************************************************************************* > File Name: fork_test.c > A 阅读全文
posted @ 2022-02-26 16:53 蘑菇王国大聪明 阅读(97) 评论(0) 推荐(0) 编辑
摘要:MCU MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元。 通过mmu可以将物理上不连续的内存映射到连续的虚拟地址上 内核映射到同一个物理地址上,所以进程间才可以有通信 MMU可以进行内存分级,Windows系统下有四级,Linux有两级,0 阅读全文
posted @ 2022-02-26 14:23 蘑菇王国大聪明 阅读(151) 评论(0) 推荐(0) 编辑
摘要:dup和dup2 返回值是int的文件描述符,参数是已有的文件描述符 此时打印的文件描述符为4,使用这个文件描述符可以访问打开的文件,可以通过这个往新的文件描述符写,主只需把打开方式改成可读可写即可。 dup2: 注意两个指针指向一个文件 如上所示,串口输出重定向也是这个原理 fcntl实现dup 阅读全文
posted @ 2022-02-26 10:53 蘑菇王国大聪明 阅读(64) 评论(0) 推荐(0) 编辑
摘要:ls -R 可以遍历到目录里面的文件 思路 代码 /************************************************************************* > File Name: ls_R.c > Author: shaozheming > Mail: 阅读全文
posted @ 2022-02-25 18:36 蘑菇王国大聪明 阅读(52) 评论(0) 推荐(0) 编辑
摘要:stat函数 代码: 文件mode测试: stat穿透 用上面的函数查看文件,在文件创建软连接之后,查看软连接的文件是可以看到本尊的文件格式的。不想穿透的话,使用lstat函数。 小技巧 在man查看函数使用时,使用G可以跳到结尾,一般在结尾处会有一些使用例子 经过掩码相与可以得到文件类型 阅读全文
posted @ 2022-02-25 16:25 蘑菇王国大聪明 阅读(81) 评论(0) 推荐(0) 编辑
摘要:如图所示:基于inode创建的所有文件指向的都是同一个inode,也就是快捷方式,相当于名字不一样,但是inode都一样,其实是一个文件。 但当所有文件都删除时,inode并不会删除,只有当创建一个新的inode覆盖原来的inode才会真正的删除。 所以格式化后的磁盘依然可以恢复数据,只需要恢复in 阅读全文
posted @ 2022-02-25 10:33 蘑菇王国大聪明 阅读(92) 评论(1) 推荐(0) 编辑
摘要:传入参数 指针作为函数参数 通常由const关键字修饰 指针指向内部有效区域,在函数内部做读操作 传出参数 指针作为函数参数 在函数调用之前,指针指向的空间可以无意义,但必须有效 在函数内部,做写操作 函数调用结束后,充当函数返回值 传入传出参数 指针作为函数参数 在函数调用之前,指针指向的空间必须 阅读全文
posted @ 2022-02-25 10:22 蘑菇王国大聪明 阅读(52) 评论(0) 推荐(0) 编辑
摘要:返回的是文件偏移量,是相对文件首的偏移量。 注意文件的读和写是使用同一位置的偏移 应用场景 此代码的执行结果是,当我写完了这个文件,如果还想再读是读不出来的,因为读和写是用的同一个位置的便宜,所以写完了之后,读的位置也是结尾,所以啥也没读出来,这时候需要用lseek函数偏移到文件首,才能读。 第二个 阅读全文
posted @ 2022-02-25 10:13 蘑菇王国大聪明 阅读(175) 评论(0) 推荐(0) 编辑
摘要:![image](https://img2022.cnblogs.com/blog/2411020/202202/2411020-20220225100912158-2050723845.png) 阅读全文
posted @ 2022-02-25 10:09 蘑菇王国大聪明 阅读(31) 评论(0) 推荐(0) 编辑
摘要:代码 /************************************************************************* > File Name: fcntl.c > Author: shaozheming > Mail: 957510530@qq.com > Cr 阅读全文
posted @ 2022-02-25 09:44 蘑菇王国大聪明 阅读(28) 评论(0) 推荐(0) 编辑
摘要:产生阻塞的场景: 读设备(dev)文件、读网络文件 tty就是显示终端设备,/dev/tty 这是会读到键盘的值并写道标准输出 第一个hello是自己输入的,是一直在等着,所以是阻塞 非阻塞的代码如下图所示: 此时read返回-1的时候,errno会变成EAGAIN或EWOULDBLOCK,表示非阻 阅读全文
posted @ 2022-02-24 17:49 蘑菇王国大聪明 阅读(66) 评论(0) 推荐(0) 编辑
摘要:PCB:进程控制块,用来描述进程的标志的,本质是个结构体,其中有一根指针指向文件描述符表 文件描述符表里面的成员都是一个指针,本质是key-value的键值对映射,value就是前面的指针。 文件描述符是指向一个文件结构体的指针!且是你使用open等函数打开的文件,就是返回的fd 操作系统并不会暴露 阅读全文
posted @ 2022-02-24 11:17 蘑菇王国大聪明 阅读(290) 评论(0) 推荐(0) 编辑

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