Linux
文章平均质量分 61
Linux相关记录
菜鸟不会飞~
这个作者很懒,什么都没留下…
展开
-
Makefile学习
简述Makefile是一种被用作自动化编译,Makefile定义了一系列的规则来指定文件编译顺序,以及哪些文件需要重新编译,甚至可以像shell脚本一样执行操作系统的命令。本篇只是简单概念及使用方式,详细的可参考:C语言中文网-Makefile教程规则普通规则target... : prerequisites ... command ......模块描述target可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个标签(l原创 2021-12-12 19:00:12 · 4312 阅读 · 0 评论 -
gcc编译工具链使用
简述gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。常用参数(大小写敏感)参数作用-o重定向目标文件-E只进行预处理,产物: *.-S编译器执行完编译操作后停止,产物: *.s-c编译器执行完汇编操作后停止,产物 *.o-Wall使gcc对源文件的代码有原创 2021-12-12 16:31:51 · 1179 阅读 · 0 评论 -
Linux环境下程序编译、链接、执行
编译过程预编译处理读取源码,对源码中文伪指令(以 # 开头)和特殊符号进行处理。生成一个没有宏定义、条件编译指令以及特殊符号的文件。宏替换,对#define、#undef、#、##替换。条件编译,如#ifdef、#ifndef、#else、#elif、#endif。预编译程序将根据相关指令,过滤掉不必要的代码。头文件包含,该阶段会把#include引入的头文件插入到源文件中。特殊符号,预编译程序可以识别一些特殊的符号,例如在源程序中出现的LINE和FILE。预编译程序对于在源程序中出现的这些原创 2021-12-12 15:35:37 · 1930 阅读 · 1 评论 -
Linux nohup运行导致程序cpu占比100%
问题描述Linux环境下,以nohup方式运行程序,可将终端和程序分离,程序的打印默认情况下会输出到nohup.out文件中。这几天偶然发现以这种方式启动程序,使用top命令查看时,发现程序CPU占用达到了100%而且居高不下。原因程序中有一行读操作代码在循环中执行,而且一直阻塞。而nohup会一直执行写操作,两者相互冲突,导致cpu占比100%。解决一般情况下,以nohup方式执行的程序都不需要读操作阻塞,所以从根源上解决方法就是把这种读操作给去掉,不要一直在循环中阻塞。另一种就是在循环中读操原创 2021-07-27 22:40:55 · 1310 阅读 · 0 评论 -
Linux下sudo执行程序进程数量有差异
在Linux下以管理员权限执行可执行文件如:sudo ./test查看进程信息ps -ef | grep -v grep | grep test可一看到结果中包含如下信息的记录:root 806 1 0 7月13日 00:00:00 sudo ./testadmin 808 806 0 7月13日 00:00:18 ./test会有两个进程,其中第一个父进程为init进程的这一条,实际上是一个shell程序,它是被sudo命令执行带起来的,具体的原因还需要去看shell的原创 2021-07-13 23:34:51 · 1121 阅读 · 0 评论