随笔分类 -  Linux

摘要:内存泄漏(memory leak),不再需要使用的内存,没有被正确释放。 valgrind mtrace 阅读全文
posted @ 2020-04-26 11:22 happyyoung 阅读(469) 评论(0) 推荐(0)
摘要:1、fopen FILE * fopen (const char * filename, const char * mode); 1)打开filename指定的文件。成功返回文件指针。 2、fread size_t fread (void * ptr, size_t size, size_t cou 阅读全文
posted @ 2020-04-10 19:26 happyyoung 阅读(486) 评论(0) 推荐(0)
摘要:在Linux中,一切皆为文件,软链接和硬链接也是。 1、索引节点(inode)和块(block) 1)inode存储文件的meta信息,如字节数、inode编号、块数和权限等等,操作系统会在磁盘中维护一个inode表。 stat 文件 # 查看文件信息 2)block,即磁盘块,由扇区(512字节) 阅读全文
posted @ 2020-04-03 21:12 happyyoung 阅读(241) 评论(0) 推荐(0)
摘要:1、僵尸进程 子进程退出,会在操作系统中残留一个僵尸进程的数据结构,如果父进程不调用wait()或者waitpid(),会一直占用进程id,则可能耗尽操作系统的进程号。 2、孤儿进程 父进程退出,子进程还在运行,这时子进程就变成孤儿进程。孤儿进程会被init进程,即进程号为1的进程收养,并负责回收残 阅读全文
posted @ 2020-03-18 16:38 happyyoung 阅读(370) 评论(0) 推荐(0)
摘要:系统调用(system call),是操作系统内核提供给用户空间的应用程序,用于和内核空间交互,请求更高权限服务的接口。 1)fork:创建子进程。 2)文件系统操作:open(打开文件),read(读文件),write(写文件)。 3)进程间通信:pipe(创建管道),msgget(获取消息队列) 阅读全文
posted @ 2020-03-16 23:46 happyyoung 阅读(175) 评论(0) 推荐(0)
摘要:fork函数,是一个系统调用,用于从父进程创建子进程。调用一次,返回两次。父进程返回子进程的进程id,子进程返回0。子进程复制了父进程的进程地址空间。 #include <cstdio> #include <unistd.h> int main() { for (int i = 0; i < 2; 阅读全文
posted @ 2020-03-16 18:12 happyyoung 阅读(180) 评论(0) 推荐(0)
摘要:1、定义变量,没有$;变量名和等号之间没有空格。 BUILD_DIR="build_linux" 2、指定脚本解释器。 #!/bin/bash 3、注释#。 4、$0是要执行的脚本(不是命令行的第一个字符串)。 sh test.sh // $0是test.sh脚本,不是sh 5、获取当前文件的绝对路 阅读全文
posted @ 2020-02-19 09:38 happyyoung 阅读(136) 评论(0) 推荐(0)
摘要:协程(coroutine),是一种轻量级的用户态线程,操作系统对协程无感知。实现的是协作式调度(非抢占式调度),即协程切换由当前协程控制,主动让出CPU(例如当前协程在等待异步网络IO时)。通常情况下,一个线程包含多个协程。 1、优点 1)协程切换的开销比线程切换小很多。原本需要线程数量越多的场景, 阅读全文
posted @ 2020-02-10 16:45 happyyoung 阅读(2250) 评论(0) 推荐(0)
摘要:进程间通信(IPC,Inter Process Communication) 1、管道,包含匿名管道和命名管道。 1)匿名管道(pipe) 1.1)半双工,数据只能单向流动。 1.2)只能在有亲缘关系的进程间(fork系统调用)使用。 1.3)传输无格式的字节流,并且缓冲区大小受限。 1.4)应用于 阅读全文
posted @ 2020-02-03 20:09 happyyoung 阅读(179) 评论(0) 推荐(0)
摘要:1、IO多路复用 通常所说的IO,包括磁盘IO和网络IO。而IO多路复用,则主要指的是网络IO,在Linux中一切皆文件,网络IO也用fd(file descriptor)来表示。复用什么东西呢?简而言之,就是多个网络IO复用一个线程。 2、select 无差别轮询 fd数量受限 3、epoll是L 阅读全文
posted @ 2020-01-10 16:21 happyyoung 阅读(180) 评论(0) 推荐(0)
摘要:显式指定动态链接库的符号可见性。 -fvisibility default hidden internal protected 参考链接: https://gcc.gnu.org/wiki/Visibility 阅读全文
posted @ 2019-11-26 15:44 happyyoung 阅读(441) 评论(0) 推荐(0)
摘要:SELinux(Security-Enhanced Linux),是Linux的的安全子系统。 阅读全文
posted @ 2019-09-08 10:53 happyyoung 阅读(143) 评论(0) 推荐(0)
摘要:1、rz强制覆盖 阅读全文
posted @ 2017-11-04 19:36 happyyoung 阅读(251) 评论(0) 推荐(0)
摘要:使用gdb,需要保留调试信息。对于g++,是使用-g编译选项;对于CMake,则是设置CMAKE_BUILD_TYPE变量。 // CMake配置 set(CMAKE_BUILD_TYPE "Debug") gdb 调试文件:启动gdb。 1、bt(backtrace):查看调用堆栈。 2、r(ru 阅读全文
posted @ 2017-10-30 11:31 happyyoung 阅读(130) 评论(0) 推荐(0)