
c/c++
?-ldl
这个作者很懒,什么都没留下…
展开
-
pthread_cancel
延迟取消不会使得线程立即取消,只是给线程发送一个信号。线程会在取消点检查是否有信号,有信号才取消。也就是延迟到取消点取消。取消点有 IO(printf也是IO),pthread_mutex_lock(),phtread_join(),phtread_testcancel()函数等。目前,我没有 找到线程取消的回调函数写法。也就是线程被取消后,可能来不及释放它的资源。函数可以取消一个线程的执行。有两种取消方式:立即取消和延迟取消。原创 2024-02-07 11:41:18 · 473 阅读 · 0 评论 -
纯虚析构函数需要实现
纯虚函数不需要实现也可以编译通过,但是纯虚析构函数例外。即使把析构函数声明为纯虚,也需要在某一个.cpp文件中给一个定义。原创 2024-02-06 17:06:55 · 442 阅读 · 0 评论 -
多进程共享的pthread_mutex_t
不用被设置为PTHREAD_PROCESS_SHARED的attr初始化mutex,mutex也能保证互斥:实验表明,如果进程不调用sleep(),省略与不省略步骤4-5的结果是一样的,没有任何两个进程同时进入临界区。不设置PTHREAD_PROCESS_SHARED可能还有其他不预期的事发生,所以还是设置PTHREAD_PROCESS_SHARED好。pthread_mutex_init有个规定,那就是它init的那片内存为全0。它就是mutex初始化时的一个指导,这个指导在哪个位置并不重要。原创 2024-01-21 17:43:35 · 856 阅读 · 2 评论 -
c++ 要求用户输入整数时的风险
不管用户输入的是什么,首先全都接受了,然后再转换为整数。这里使用stoi而不是atoi,是因为atoi在无法把字符串转化为数字时返回0。无法区分是数字就是0,还是无法转换。stoi在无法转化时是抛出异常且不返回。第三行使用getline,还是cin>>a_s。这样这些错误内容可能会使得后面的输入混乱。因为这些错误的内容可能会留在缓冲区。或者用不正确的值覆盖掉a的默认值。因为用户的输入可能无法转化为整数。或者除了整数外输入了额外的内容。为了保证不受用户错误输入的影响。要求用户输入整数时,如果直接这样。原创 2023-10-28 21:27:31 · 261 阅读 · 0 评论 -
c++和java实现策略模式的差异
c++的对象有两种实例化方式,一种是局部变量中直接实例化。一种是new出来的。java的对象构建,没有第一种方式,java的对象都是new 出来的。原创 2023-10-27 17:30:15 · 383 阅读 · 0 评论 -
linux 进程信号编程 ctrl+C杀死父子进程
在终端中按下ctrl+C,会向当前前台进程以及其子进程发送一个SIGINT信号。原创 2023-04-03 23:00:44 · 757 阅读 · 0 评论 -
c++函数重载二义性
指用于定义的类形转换为其他类型。原创 2023-03-28 21:33:01 · 257 阅读 · 0 评论 -
c++函数引用参数可能创建临时变量
c++引用参数也可能创建临时变量,这种情况发生在,实参类型与形参类型不同,但实参可以转化为形参类型,且形参类型是const的情况。另外,如果形参类型不是const,而实参类型与形参不匹配,那么编译是通不过的。原创 2023-03-28 16:03:37 · 236 阅读 · 0 评论 -
c++子类构造函数与赋值号重载说明
子类构造时一定会调用父类的构造函数,如果用户没有说明调用父类的哪一个构造函数,则调用父类的无参构造函数。如果父类没有无参构造函数,则编译错误。原创 2023-03-22 20:04:18 · 212 阅读 · 0 评论 -
cin特性
这个会忽略空格和回车以及制表符。>>不会丢掉,也不会消费它们。原创 2023-03-20 22:17:03 · 155 阅读 · 0 评论 -
gcc 参数 -D
解释gcc中的-D编译选项原创 2023-02-18 15:45:17 · 415 阅读 · 0 评论 -
ucore bootloader详解
本文将详细解析bootsam.S和bootmain.C中的代码,以及代码牵扯到的知识点如可执行文件的格式、段机制、A20gate。原创 2023-02-04 21:43:34 · 839 阅读 · 0 评论 -
c++ forward
介绍forward的功能以及使用原创 2023-01-24 15:00:33 · 175 阅读 · 0 评论 -
C++ push_back和 emplace_back的区别
push_back和emplace_back的区别原创 2023-01-23 22:05:39 · 259 阅读 · 0 评论 -
ucore lab1,lab2,lab3,lab4链表详解 获取结构体成员偏移
本文介绍ucore中的链表数据结构。原创 2023-01-18 17:26:35 · 1046 阅读 · 0 评论 -
c++ stl的迭代器部分功能可以这样实现
我们可以把迭代器理解为指向某个元素的指针,然后可以像使用指针一样使用这个迭代器。原创 2022-08-30 22:31:29 · 405 阅读 · 0 评论 -
char指针和unsigned char指针间的转换
今天在糟蹋mysql源码的时候遇到一个类型转换的问题。my_write()函数要求传入的参数是unsigned char *类型的,而我待写入的数据是char *类型的。这就需要进行类型转换。原创 2022-08-30 11:01:27 · 1815 阅读 · 0 评论 -
c语言open函数追加模式的疑问
open函数追加写入除了需要加入O_APPEND标志,还需要加入O_WRONLY标志才能追加写入。原创 2022-08-30 11:00:12 · 1426 阅读 · 0 评论 -
clion调试的一个技巧
clion调试的一个技巧原创 2022-07-30 16:26:14 · 1748 阅读 · 2 评论 -
GDB使用的2个技巧
GDB使用的两个技巧原创 2022-07-30 16:12:36 · 881 阅读 · 0 评论 -
c语言文件操作的理解
有关c语言文件操作的一点理解。还有两个gdb的调试小技巧原创 2022-07-30 16:03:22 · 347 阅读 · 0 评论