linux
文章平均质量分 70
步基
深耕音视频领域,系统架构
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
epoll详解
linux系统一切皆文件,设备,socket等都可以理解为是一个文件。 select,pool,epoll都能管理多个socket,但select最多管理1024个socket,poll没有1024个数限制但效率不高,目前主流方案是epoll。 epoll三个接口函数 #include <sys/epoll.h> //创建一个epoll句柄,参数size是内核保证能够正确处理的最大句柄数,多于这个最大数时内核不保证效果。当创建好epoll句柄后,它就是会占用一个fd值,在linux下原创 2022-01-12 17:26:02 · 875 阅读 · 0 评论 -
ubuntu空间清理
//ubuntu上的 /dev/loop0 到 /dev/loop18 100%清理 apt autoremove --purge snapd //移除不需要的软件包 sudo apt autoremove //清理apt缓存 sudo du -sh /var/cache/apt //清理缓存 sudo apt autoclean //清除缩略图 du -sh ~/.cache/thumbnails //卸载软件 sudo apt remove xxx(软件名)..原创 2022-01-09 12:34:36 · 2042 阅读 · 0 评论 -
CMakeLists.txt生成makefile
1 单个源文件编译 main.c #include <stdio.h> int main() { printf("Hello World Test!\n"); return 0; } CMakeLists.txt: project(hello_buji) set(APP_SRC main.c) add_executable(${PROJECT_NAME} main.c) message(${PROJECT_SOURCE_DIR}) 解释代码: 第一个行proje...原创 2022-01-06 22:41:34 · 4726 阅读 · 0 评论 -
linux c++之so隐式调用
linux环境下,调用so动态链接库,有两种方式,显示调用(dlopen加载so库,dlsym获取函数指针)和隐式调用(编译时需要头文件和so库)。本文主要讲隐式调用。 隐式调用由系统加载完成,对程序员透明;显式调用由程序员在需要使用时自己加载,不再使用时,自己负责卸载 (1)动态库代码:dl_func.c extern char name[]; int add(int a, int b) { printf("calling add\n"); printf("Hello, %s!\n"..原创 2021-12-30 15:43:19 · 2794 阅读 · 0 评论 -
gcc/makefile/shell编译详解
gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步: 1、预处理,生成 .i 的文件[预处理器cpp] 2、将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs] 3、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as] 4、连接目标代码, 生成可执行程序 [链接器ld] -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是原创 2021-12-30 11:18:19 · 1727 阅读 · 0 评论 -
./configure 自动生成makefile
新建helloworld目录,里边有一个源码文件helloworld.c。 $ autoscan $ ls configure.scan helloworld.c 新生成的文件configure.scan改名为configure.in,并编辑修改内容,去掉无关的语句: ===================configure.in内容开始============= # -*- Autoconf -*- # Process this fil...原创 2021-12-10 21:32:13 · 1782 阅读 · 0 评论
分享