- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 Shell、bash、sh和linux命令的关系
shell 首先检查命令是否是内部命令,不是的话再检查是否是一个应用程序,这里的应用程序可以是Linux本身的实用程序,比如ls rm,然后shell试着在搜索路径($PATH)里寻找这些应用程序。sh【Bourne shell,其中Bourne是该软件的owner】、bash【Bourne Again shell,是sh的扩展,并对sh完全向后兼容】是具体的shell程序。bash是linux中的一个应用程序,所以用man bash的方式了解更多bash的信息,比如bash中的变量。
2023-07-11 20:43:14 491
原创 当const, int遇到*
还有一种不是那么常见的定义int *const p,根据右结合性,p是const的,也就是说在后续使用p时不能对它进行修改的。如果尝试通过p=a的方式尝试把int *a传递给p,编译器会报错“assignment of read-only variable”,提示你正在对一个只读变量进行赋值操作。p,目的让编译器帮助程序员在该函数的编写过程中不要通过p来修改p所执行的内容。左边的是对*p的修饰,说明其中的内存是const int或者int const的。函数接口定义时常常遇到的是const int。
2023-04-23 10:17:47 459
原创 getenv()和环境变量
Note3:可以通过https://www.runoob.com/cprogramming/c-function-getenv.html了解getenv();Note2:可以通过https://www.runoob.com/linux/linux-comm-export.html了解Linux的相关命令。Note4:有参考https://blog.csdn.net/wuxiaopengnihao1/article/details/126021961。
2023-04-20 14:22:24 401
原创 malloc, calloc和realloc
Note3: 想进一步了解Linux 的虚拟内存,参考https://blog.csdn.net/wangcg123/article/details/79582118?(1)通过realloc()验证了:这三个函数通常是在堆内存中分配内存,当申请的内存超过MMAP_THRESHOLD字节(默认是128kB)时,glibc的三个内存分配函数会通过mmap()作为私有匿名映射来分配内存。(3)calloc分配出来的内存有初始化为0;(2)malloc分配出来的内存没有初始化;
2023-04-19 17:12:04 173
原创 driver用户态学习记录3----多线程(2)POSIX信号量sem_t
创建6个存钱线程,每天存100块,创建3个取钱线程,每天取100块,执行36500次,如果开启信号量保护模块ENABLE_SEMAPHORE,能得到正确的结果。在linux的线程中,其实是没有任何资源关联到信号量对象需要释放的,因此在linux中,销毁信号量对象的作用仅仅是测试是否有线程因为该信号量在等待。功能:被用来阻塞当前线程直到信号量sem的值大于0,解除阻塞后将sem的值减1【即信号量的value永远不应该
2023-04-18 15:12:34 137
原创 driver用户态学习记录2----多线程(1)pthread_create, pthread_once, pthread_self和pthread_join
【代码】driver用户态学习记录2----多线程(1)pthread_create, pthread_once, pthread_self和pthread_join。
2023-04-17 10:02:00 93
原创 std::shared_ptr和std::weak_ptr学习记录
std::shard_ptr是智能指针,通过引用计数的方式共享对象的所有权,在引用计数为0时自动释放对象占用的内存。int main(){ int *p = new int(10); std::shared_ptr<int> a(p, [](int* p) {std::cout << "[deleter called]\n"; delete p;}); std::cout << "p=" << p <...
2022-04-30 16:57:58 532
原创 std::mutex和std::lock_guard
互斥锁是一种可锁定的对象,它被设计用来在关键代码段需要独占访问时发出信号,防止具有相同保护的其他线程并发执行并访问相同的内存位置。互斥对象提供独占性,不支持递归性(也就是说,一个线程不应该锁定它已经拥有的互斥对象,否则会导致死锁)。 构造函数:仅支持默认构造函数,不支持拷贝和移动构造函数。完成构造后,处于unlock状态。互斥锁的构造本身不是原子的:在构造时访问对象可能会引发数据竞争。 lock():调用线程锁住互斥对象,必要时阻塞,互斥对象被作为原子操作访问/修改(不会导致数据竞争)。 ...
2022-04-27 17:18:05 8805 1
原创 std::thread的join()和detach()
std::thread:代表单独的线程对象。同一进程中的线程共享同一个地址空间。一个初始化的thread对象代表一个激活的线程,该对象是joinable的,有唯一的线程id。一个只构造但没有初始化的线程对象是non-joinable的线程,所有non-joinable的线程的id都是一样的。对joinable的线程执行join()或者detach()操作后,该线程就变成non-joinable的了。构造函数:default (1) thread() noexcept;initialization (
2022-04-27 10:45:30 451
原创 C++的特殊成员函数(Special members)与关键字default和delete
特殊成员函数是在特定情况下隐式定义为类成员的成员函数。有如下六个:一、默认构造函数:如果类申明时没有显示定义任何构造函数,则编译器假定该类具有隐式定义的默认构造函数。例如申明如下的类:class Example {public:int total;void accumulate (int x) { total += x; }};编译器会假定有一个默认构造函数:Example() {},因此通过如下语句直接定义一个变量是能编译过的Example ex;一旦类有显示申明的构造函数,编译器就不
2022-02-21 13:55:51 906
原创 win10护眼色修改
参考https://glarminy.com/2016/07/29/change-text-background-color-windows-10/修改office软件,IE,google chrome等的背景色:设置-》个性化-》颜色-》高对比度-》从“选择主题”下来框下选择一个主题,然后修改“选择才是矩形以自定义高对比度颜色”中的背景色、文本色等-》点击应用,把颜色保存下来-》下拉框中选择刚刚保存的主题并应用即可。Notepad++颜色修改:设置->语言格式设置->选择主题
2022-01-28 11:05:06 699
原创 c++中的 for_each 函数
C++ 学习过程中可以参考http://www.cplusplus.com/referencefor_each()是一个模板函数,源码如下:template<class InputIterator, class Function>Function for_each(InputIterator first, InputIterator last, Function fn){while (first!=last) {fn (*first);++first;}return fn;
2022-01-24 15:48:44 437
原创 C++和C的编译
1. C++编译文件:g++ -g -Wall -std=c++11 -o test test.cpp-g是加编译信息,方便后续可以用gdb调试;-Wall,提供比较详细的warning信息;-std=c++11,支持c++11的语法;2. C编译文件:gcc -o test test.cpp
2022-01-21 14:04:41 838
原创 C++的Lambda表达式学习记录
C++的Lambda表达式转自https://www.cnblogs.com/jimodetiantang/p/9016826.html,稍作修改(对代码进行验证,并提供输出结果)。概述C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda 的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}Lambda 主要分为五个部分:[函数对象参数]、(操作符重载函数参
2022-01-21 11:22:35 79
原创 FFMPEG学习记录
FFMPEG学习记录本文仅仅是学习雷神blog的记录而已。一、下载源码并解压在http://ffmpeg.org/download.html 中下载源码ffmpeg-snapshot.tar.bz2;通过tar -jxvf ffmpeg-snapshot.tar.bz2解压二、编译配置在ffmpeg根目录下执行:./configure –help了解相关配置,可以参考https://blog.csdn.net/qq373432361/article/details/7068043执行配置
2022-01-18 10:52:16 1497
14496-1、14496-12、14496-14
2019-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人