![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux环境编程
KjfureOne
熟悉ARM平台,x86平台,下linux驱动开发,流行单片机裸驱开发,以及移动开发,有五年工作经验。
展开
-
僵尸进程与孤儿进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。 2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进转载 2016-10-08 19:39:25 · 298 阅读 · 0 评论 -
linux getopt
/*include #include <unistd.h>int main (int argc, char **argv) { int oc; /*选项字符 */ char ec; /*无效的选项字符*/ char *b_opt_arg; /*选项参数字串 */ wh原创 2016-09-29 17:10:19 · 288 阅读 · 0 评论 -
gdb 使用 coredump
使用gdb和core dump迅速定位段错误 关键字:gdb、段错误、core dump 一、什么是core dump core:内存、核心的意思; dump:抛出,扔出; core dump:前提:当某程序崩溃的一瞬间,内核会抛出当时该程序进程的内存详细情况,存储在一个名叫core.xxx(xxx为一个数字,比如core.699)的转载 2016-08-18 15:54:43 · 697 阅读 · 0 评论 -
c动态链接库
机器执行的是机器指令,而机器指令就是一堆二进制的数字。高级语言编写的程序之所以可以在不同的机器上移植就因为有为不同机器设计的编译器的存在。高级语言的编译器就是把高级语言写的程序转换成某个机器能直接执行的二进制代码。以上的知识在我们学习CS(Computer Science)的初期,老师都会这么对我们讲。但是我就产生疑问了:既然机器都是执行的二进制代码,那么是不是说只要硬件相互兼容,不同操作系统下的转载 2016-07-31 09:39:23 · 456 阅读 · 0 评论 -
程序调试(1)GDB 基本使用
编译gcc -g -W application.c -o application基本命令调试程序 gdb application 显示代码 list设置短点 break lineNumber break function break filename:line_number break filename:原创 2016-07-03 20:43:25 · 320 阅读 · 0 评论 -
ubuntu16.04搭建QT5.7
ubuntu16.04使用QT5.71.下载 https://www.qt.io/download-open-source/#section-2#chmod +x qt ./qt-unified-linux-x64-2.0.3-1-online.run2.install depend lib #sudo apt-get install build-essential #sudo apt-get in原创 2016-10-14 09:46:52 · 4197 阅读 · 0 评论 -
linux core dump
inux Core Dump 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他转载 2016-11-28 22:23:27 · 317 阅读 · 0 评论 -
使用Valgrind Memcheck检查内存
使用Valgrind Memcheck memcheck工具的使用方式如下: valgrind --tool=memcheck ./a.out 从上面的命令可以清楚的看到, 主要的命令是valgrind,而我们想使用的工具是通过'-tool'选项来指定的. 上面的‘a.out’指的是我们想使用memcheck运行的可执行文件. 该工具可以检测下列与内存相关的问题 : · 未释转载 2017-08-05 16:38:53 · 596 阅读 · 0 评论