
Linux学习
PengStrongLee
这个作者很懒,什么都没留下…
展开
-
ubuntu 下 PUBKEY 报错“public key is not available”
今天在安装opencv时出现了一个问题,sudo apt update时报错:W: GPG error: http://security.ubuntu.com trusty-security Release: The following signatures couldn't be verified because the public key is not available: NO_PUB原创 2016-10-09 15:05:42 · 1183 阅读 · 1 评论 -
Linux学习之gdb调试
一.gdb常用命令:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行转载 2017-03-18 10:49:37 · 363 阅读 · 0 评论 -
Linux学习之g++编译命令
有关gcc和g++的区别我就不赘述了,我个人更喜欢用g++来编译链接c++程序,因为它检查规则更严格。[介绍]gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇原创 2017-03-25 15:13:02 · 1231 阅读 · 0 评论 -
C语言编译过程
IDE的使用让很多和我一样的人对C/C++可执行程序的底层生成一知半解,不利于我们深入理解原理。在这里小结一下,望路过的大神指正~前言:从一个源文件(.c文件)到可执行程序到底经历了哪几步,我想很多人都知道,但是每一步具体做了什么,估计很多像我一样的人就不能说的清清楚楚,明明白白了。编辑一个小程序,hello.c#include #include int mai转载 2018-01-10 10:05:20 · 1295 阅读 · 0 评论 -
C语言变长数组
【前言】 C语言中是不能定义变长数组的(当然,有一些特殊方法可以解决,这里先不提),代码中若遇到类似这样的结构:char data[0],这种用法在linux内核代码中有很多,这是为了让数组长度可变的,根据需要进行分配,方便操作,节省内存空间。 【data[0]结构】 例如:struct buffer{ int data_len; //长度 char...原创 2018-03-28 09:23:12 · 11031 阅读 · 2 评论 -
Linux线程(一)创建与退出
多线程目的是在单进程环境下执行多个任务。一个进程中的所有线程都可以访问该进程的组成部件,如文件描述符和内存。单个资源在多个用户间共享,就必须处理一致性问题。同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(th...原创 2018-10-09 17:48:04 · 574 阅读 · 0 评论