05 2022 档案

摘要:首先,C语言中不存在引用,所以当你试图改变一个指针的值的时候必须使用二级指针。 学习C语言的一定知道: C语言中参数传入函数的过程为值传递,函数中修改的局部变量的值对原来的实参并没有影响。 当使用一级指针作为参数传入函数的过程为地址传递, 函数的实际操作是对指针的操作,那就可以通过函数中对于实参指针 阅读全文
posted @ 2022-05-31 12:28 时间的风景 阅读(425) 评论(0) 推荐(0) 编辑
摘要:方法 readelf命令 readelf --debug-dump=info /path/to/executable grep "DW_AT_producer" strings命令 strings /path/to/executable | grep march 其实可能还有很多方法... 关于re 阅读全文
posted @ 2022-05-30 11:35 时间的风景 阅读(1035) 评论(0) 推荐(0) 编辑
摘要:第1章 温故而知新 第一章介绍了一些后面会用到的计算机的基础知识,包括CPU、存储、线程和操作系统等。 第2章 编译和链接 介绍了从helloWorld.c到helloWorld.out的编译和链接的过程,并介绍了编译器和链接器。 第3章 目标文件里有什么 以Linux下的ELF格式为例,详细介绍了 阅读全文
posted @ 2022-05-28 22:03 时间的风景 阅读(114) 评论(0) 推荐(0) 编辑
摘要:问题引入 【提问者】:请教大家一个问题。我把一个对象做成了共享指针std::shared_ptr,但是有一个库需要裸指针。这种情况下,我通过get方法,获得裸指针给这个库的函数使用,这样行不行?有什么需要注意的问题吗 【程序喵】:行,保证裸指针在shared_ptr生命周期内就没事 【提问者】:是啊 阅读全文
posted @ 2022-05-25 19:30 时间的风景 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Linux线程的使用策略 Linux线程同步(一)之使用互斥量 Linux线程同步(二)之使用信号量 Linux进程间通信(一)之无名管道(PIPE)和有名管道(FIFO) Linux进程间通信(二)之信号量 阅读全文
posted @ 2022-05-20 10:53 时间的风景 阅读(31) 评论(0) 推荐(0) 编辑
摘要:系列文章目录 现代 CMake 简明教程(一)- CMake 基础 现代 CMake 简明教程(二)- 设计理念与使用 文章目录 前言 用 CMake 来构建 C/C++ 项目是业内的主流做法。最近,我们的项目代码做了一些拆分和合并:引入其他仓库代码,并且将公共部分拆分以供多个仓库同时使用。为此,就 阅读全文
posted @ 2022-05-18 11:15 时间的风景 阅读(365) 评论(0) 推荐(0) 编辑
摘要:Sanitizers简介 Address Sanitizer(ASAN)是一个快速的内存错误检测工具。它非常快,只拖慢程序两倍左右(比起Valgrind快多了)。它包括一个编译器instrumentation模块和一个提供malloc()/free()替代项的运行时库。GCC从4.8版本开始支持Ad 阅读全文
posted @ 2022-05-16 17:55 时间的风景 阅读(5379) 评论(0) 推荐(1) 编辑
摘要:capacity与size 了解这两个函数的区别,首先要搞清楚容器的capacity(容量)与size(长度)的区别。 size指容器当前拥有的元素个数 capacity则指容器在必须分配新存储空间之前可以存储的元素总数,即预分配存储空间的大小 应用区别 容器调用resize()函数后,所有的空间都 阅读全文
posted @ 2022-05-15 16:27 时间的风景 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:1. 创建一个库,请输入: ar -qv lib.a strlen.o strcpy.o 如果 lib.a 库不存在,则此命令创建它,并将文件 strlen.o 和 strcpy.o 的副本输入其中。 如果lib.a 库存在,则此命令在不检查相同成员的情况下,将新的成员添加到末尾。 v 标志设置详细 阅读全文
posted @ 2022-05-12 22:31 时间的风景 阅读(708) 评论(0) 推荐(0) 编辑
摘要:1. locate :查找文件位置 2. nm : 显示二进制目标文件的符号表 语法 nm (选项) (二进制目标文件) 二进制文件通常是库文件、可执行文件、objective文件(gcc -c xxx.c产生的目标文件) 选项 -A:每个符号前显示文件名 -C:禁用C++的name mangle, 阅读全文
posted @ 2022-05-12 21:18 时间的风景 阅读(1778) 评论(0) 推荐(0) 编辑
摘要:生成动态库 代码目录结构如下: build : 编译目录 CMakeLists.txt :编写cmake生成规则 lib :指定动态库的生成目录 src :源代码目录 这里我们library.h的代码: #ifndef MYSHAREDLIB_LIBRARY_H #define MYSHAREDLI 阅读全文
posted @ 2022-05-12 14:44 时间的风景 阅读(318) 评论(0) 推荐(0) 编辑
摘要:前言 本文介绍了C++编程中的“利器”。 程序构建 编译器 clang g++ msvc IBM XL等其他 构建工具 cmake automake make 代码格式 astyle: 代码格式化工具,可自定义代码风格 indent : 源代码格式化 cppi : C++预处理命令缩进 clang- 阅读全文
posted @ 2022-05-12 13:42 时间的风景 阅读(301) 评论(0) 推荐(0) 编辑
摘要:C11的版本在类型系统上下了很大的功夫,添加了诸如auto,decltype,move等新的关键词来简化代码的编写与降低阅读代码的难度。为了更好的理解这些新的语义,笔者确定通过几篇文章来简单窥探一下C类型系统的冰山一角,如果加深了对C类型系统的理解,想必大家也能够更好的应用由C11带给我们的新"利器 阅读全文
posted @ 2022-05-11 17:40 时间的风景 阅读(113) 评论(0) 推荐(0) 编辑
摘要:官方手册 CMake Tutorial CMake Reference 作用 定义程序编译规则 基本流程 编写CMakeLists.txt 通过cmake生成Makefile make编译 编写CMakeLists.txt 生成可执行文件的最简单版本的CMakeLists.txt # 规定该CMak 阅读全文
posted @ 2022-05-11 16:07 时间的风景 阅读(719) 评论(0) 推荐(0) 编辑
摘要:关于阻塞、非阻塞与同步、异步之间的关系,网上回答五花八门,往往看完了也似懂非懂。偶然发现知乎一个回答挺不错: 怎样理解阻塞非阻塞与同步异步的区别? 阅读全文
posted @ 2022-05-10 15:51 时间的风景 阅读(22) 评论(0) 推荐(0) 编辑
摘要:制作库文件有什么用? 不暴露源码 不引入到代码 静态库 ####(1) 制作步骤 编译为.o文件 将.o文件打包:ar rcs libmylib.a file1.o file2.o ... (ar命令只能打包.o文件) 将头文件与库一起发布 ####(2)使用 代码中包含头文件,编译时-L指定酷路径 阅读全文
posted @ 2022-05-06 14:44 时间的风景 阅读(49) 评论(0) 推荐(0) 编辑
摘要:-I : 包含头文件路径(绝对路径、相对路径都可以) -O :优化选项,1-3 -L : 包含的库路径 -l :指定库名(如libxxx.so或libxxx/a,-lxxx) -o : 指定目标文件 -c :编译成.o文件 -g : 用于gdb调试,不加此选项不能gdb调试 -Wall : 显示更多 阅读全文
posted @ 2022-05-06 14:21 时间的风景 阅读(362) 评论(0) 推荐(0) 编辑
摘要:小知识点 gcc -E hello.c会直接输出预处理过程到屏幕上,我们可以把它输出到文件 > gcc -E hello.c > hello.i >会先清空hello.i文件内容再写入 >> gcc -E hello.c >> hello.i >>会追加写入 编译出的二进制文件可以用file命令查看 阅读全文
posted @ 2022-05-06 11:00 时间的风景 阅读(134) 评论(0) 推荐(0) 编辑
摘要:vim的学习其实可以在linux下输入vimtutor命令,然后就有一份教程,英文版不好说阅读时间,但是中文版的话估计2-3小时就会用了。 vim 三大模式 vim 一共有三种模式,分别为命令模式、编辑模式和末行模式。 vim 常用功能 其实vim比大家想象的要简单(非中高端用户),学习这个要注意学 阅读全文
posted @ 2022-05-01 17:34 时间的风景 阅读(317) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示