Linux
文章平均质量分 56
Linux基础
III Fated
这个作者很懒,什么都没留下…
展开
-
GCC的使用
gcc的使用 预编译 -E gcc -E 源文件 -O 要生成的目标文件(xxx.i) 编译 -S gcc -S xxx.i 默认生成一个 xxx.s 汇编 -C gcc -C xxx.s 默认生成一个 xxx.o 链接 gcc 编译链接原理 1).预编译(生成.i文件) (1)将所有的“#define"删除,并且展开所有的宏定义; (2)处理所有条件预编译指令,比如:“#if","#ifend" (3)处理"#inc原创 2022-03-22 22:52:01 · 534 阅读 · 0 评论 -
gdb调试
1、debug版本和release版本 debug版本:可调式版本,用于开发人员单步调试(开发者使用) release版本:发行版本,不可单步调试 (用户使用) linux gcc 默认生成的是 release版本 生成debug版本: -g 在编译时就添加一些用户信息 如果分步完成编译阶段和链接阶段 , -g 必须添加到编译阶段 2、gdb debug 版本可执行文件 gdb debug debug就是debug版本的可执行文件 Reading sym原创 2022-03-22 22:43:20 · 484 阅读 · 0 评论 -
linux库文件
库文件:预先编写好的某些特定功能的代码集合 1、静态库:会在链接时使用,将库中的内容直接链接到最终的可执行文件中。可执行文件中相当于有了静态库的副本,所以执行时不再需要静态库。 windows: xxxx.lib linux: xxxxx.a 静态库: 功能模块源代码 list.c vector.c set.c map.c stack.c queue.c 将所有的源代码文件编译成中间件 ar crv libxxxxxx.a 所有的中间文件 使用: gcc -o main原创 2022-03-22 22:11:33 · 415 阅读 · 0 评论 -
MakeFile
makefile文件:linux上的工程管理工具 工程中的源文件很多,可以根据其模块、功能等存储在不同的目录中,makefile可以提高其编译效率 makefile文件 main: my_add.o my_sub.o my_mux.o my_div.o main.o gcc -o main my_add.o my_sub.o my_mux.o my_div.o main.o my_add.o :my_add.c gcc -c my_add.c my_原创 2022-03-22 21:49:58 · 118 阅读 · 0 评论 -
Linux下fork()
1、fork()的使用 写时拷贝技术:子进程复制了父进程,一开始与父进程指向同一块物理内存。因此看起来父子进程完全相同,但是进程之间具有独立性。意味着当这块物理内存中数据即将发生改变时会重新给子进程开辟物理内存,将数据拷贝过来,因为子进程应该有自己的数据。 2、vfrok函数的使用 创建一个子进程,并且阻塞父进程,直到子进程exit提出或者程序替换之后,父进程才会运行。 vfrok创建子进程效率比较高,因为vfork创建子进程之后与父进程共用同一个虚拟地址空间。 3、子进程作用 创建子进程大多数情况下并原创 2022-03-16 20:52:34 · 184 阅读 · 0 评论 -
Linux进程
1、进程的概念 进程:进行中的程序 / 运行中的程序 进程是资源分配,任务管理是单位 程序:存储在磁盘上的二进制可执行文件,是开发人员编写的源码由编译器编译 链接生成的文件。windows上是 .exe Linux上是 .out 2、查看进程 命令: ps ps -e -f -l -a 3、结束进程 kill pid 结束pid进程 kill cmd 结束一组相同cmd的进程 kill -9 pid 强制结束一个进程 4、挂起进程 kill -s原创 2022-03-16 20:41:27 · 155 阅读 · 0 评论 -
vim常用键位组合
目录 1 普通模式 1.1 光标移动 1.2 搜索替换 1.3 删除、复制、粘贴 1.4 注释、取消注释 1.4.1 注释 1.4.2 取消注释 2 插入模式 3 命令模式 vim 共分为三种模式,分别是普通模式,插入模式和命令模式。 三种模式转换如下: 1 普通模式 1.1 光标移动 1.2 搜索替换 1.3 删除、复制、粘贴 复制粘贴多行: 按大写V,然后选中多行后y复制,p粘贴 1.4 注释、取消注释 1.4.1 注释 ①Ctrl+v进入块选择模式; ②选中所要注释的行(不用将整行选中,只原创 2022-03-08 09:22:45 · 589 阅读 · 0 评论 -
孤儿进程和僵死进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。 2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之转载 2022-03-08 09:16:56 · 115 阅读 · 0 评论 -
I/O复用 select,poll,epoll
IO多路复用 IO复用模型在阻塞IO模型上多了一个select函数,select函数有一个参数是文件描述符集合,意思就是对这些的文件描述符进行循环监听,当某个文件描述符就绪的时候,就对这个文件描述符进行处理。 这种IO模型是属于阻塞的IO。但是由于它可以对多个文件描述符进行阻塞监听,所以它的效率比阻塞IO模型高效。 IO多路复用就是我们说的select,poll,epoll。select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理就是select,poll,ep原创 2022-03-07 08:59:56 · 107 阅读 · 0 评论 -
解决Linux虚拟机和桌面之间互相复制文件之类
新安装的Ubuntu和桌面之间是不互通的,解决办法如下: sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools-desktop 然后重启虚拟机就好了原创 2021-11-18 16:58:38 · 407 阅读 · 0 评论 -
Linux目录
一、Linux常见目录: 倒状树: 目录 / 根目录 /bin 存放常用命令(即二进制可执行程序) ls、mkdir、tar、mount....... /etc 存放系统配置文件 /home 所有普通用户的家目录 /root 管理员用户的家目录 /usr 存放系统应用程序文档 usr不等于user /proc ...原创 2020-08-11 21:29:41 · 162 阅读 · 0 评论 -
Linux文件操作
一、linux的文件类型以及权限: 新建两个文件:mkdir 112.c 创建一个目录文件 touch 113.c 创建一个普通文件 查看文件: ls -l 显示更多文件属性: 1 2 3 ...原创 2020-08-11 22:37:54 · 828 阅读 · 0 评论