Linux
Linux
一念男
这个作者很懒,什么都没留下…
展开
-
给指针初始化为0与nullptr
使用了现代 C++ 的新特性,即使用关键字 `nullptr` 来初始化指针。`nullptr` 是一个空指针常量,具有与 `0` 相同的空指针值,但更明确地表示指针为空。使用 `nullptr` 可以提高代码的可读性和可维护性。总的来说,如果你正在使用较新的 C++ 标准,建议使用 `nullptr` 来初始化指针,以体现代码的现代化。` 是在 C++ 中经常使用的旧式空指针初始化方式。这种方式在较旧的 C++ 版本中是合法的,并且仍然有效,但在现代 C++ 中已经被弃用。这两种写法有一些区别。原创 2023-10-01 10:49:01 · 409 阅读 · 0 评论 -
ThreadPool(const ThreadPool<T>& other) = delete;
这看起来是一个类模板 ThreadPool 的拷贝构造函数声明,其中使用了 `= delete`,表示禁用了拷贝构造函数的默认实现。原创 2023-09-30 19:23:07 · 49 阅读 · 0 评论 -
volatile的作用
在C/C++中,`volatile`是一个关键字,用于告诉编译器变量的值可能在未预料的情况下被改变。它的主要作用是防止编译器对变量进行优化,以。确保每次访问该变量都从内存中读取最新的值,而不是使用缓存的值。原创 2023-09-18 21:09:01 · 43 阅读 · 0 评论 -
Compile and link with -pthread.
用于在编译和链接过程中启用 POSIX 线程库。POSIX 线程库是一种用于多线程编程的标准库,它提供了创建、同步和管理线程的函数。原创 2023-09-14 21:37:08 · 48 阅读 · 0 评论 -
发生以下的报错怎么办?
1. 将`nullptr`替换为`NULL`。`NULL`是C/C++中原本定义的空指针常量,它是一个宏定义,在头文件`<cstddef>`中。根据你提供的代码和错误信息,问题出在使用了`nullptr`。这个错误是因为你的编译器不支持C++11标准。`nullptr`是C++11引入的空指针常量。请注意,如果您选择使用第二种方法,请确保您的编译器和开发环境已正确配置以支持C++11标准。2. 使用支持C++11的编译器。如果你的编译器支持C++11标准,你可以。原创 2023-09-14 21:26:19 · 609 阅读 · 0 评论 -
snprintf(name,sizeof name,“%s-%d“,“thread“,i);的作用
2. snprintf函数是C语言中用于格式化字符串的函数之一。它将格式化后的字符串写入到指定的字符数组中,并返回写入的字符数(不包括字符串结尾的空字符'\0')。这段代码的作用是将"thread"和变量i格式化为一个新的字符串,并将结果写入到name数组中,保证不超过数组长度的限制。定义一个长度为64的字符数组name,用于存储格式化后的字符串。6. 后面的参数是按顺序提供格式化字符串中的变量,这里为"thread"和i。3. 第一个参数是要写入的字符数组的地址,即name。4. 第二个参数是要。原创 2023-09-14 20:56:31 · 128 阅读 · 0 评论 -
vm_area_struct仅用于对堆区进行更细腻的划分吗?
VM_area_struct 结构记录了虚拟内存区域的起始地址、大小、权限等信息,并通过链表的方式组织起来,以便快速查找和操作。在堆区方面,VM_area_struct 可以用于细分堆区的不同段,例如用于存储动态分配的内存、共享内存区。通过 VM_area_struct 的划分和管理,可以更加高效地分配和回收堆内存,提升内存管理的性能和灵活性。总而言之,VM_area_struct 提供了对虚拟内存区域进行细粒度划分和管理的能力,其中包括对堆区的划分,但不仅限于堆区。原创 2023-09-14 14:33:35 · 104 阅读 · 0 评论 -
Linux--主进程按照指定顺序的方式依次唤醒执行不同任务的新线程
【代码】Linux--主进程按照指定顺序的方式依次唤醒执行不同任务的新线程。原创 2023-08-21 15:48:21 · 56 阅读 · 0 评论 -
Linux--新线程陷入死循环,主线程让它退出
【代码】Linux--新线程陷入死循环,主线程让它退出。原创 2023-08-18 10:41:19 · 142 阅读 · 0 评论 -
Linux--主线程获取到子线程的返回值
【代码】【无标题】原创 2023-08-17 18:39:39 · 125 阅读 · 0 评论 -
Linux--主线程等待新线程
【代码】Linux--主线程等待新线程。原创 2023-08-17 16:51:50 · 45 阅读 · 0 评论 -
Linux--新线程异常,对其它线程的影响
【代码】Linux--新线程异常,对其它线程的影响。原创 2023-08-17 16:24:40 · 59 阅读 · 0 评论 -
Linux--创建新进程
【代码】Linux--创建新进程。原创 2023-08-17 16:18:42 · 36 阅读 · 0 评论 -
Linux--证明线程在进程内部运行
【代码】Linux--证明线程在进程内部运行。原创 2023-08-17 10:23:47 · 34 阅读 · 0 评论 -
Linux--验证子进程退出时,会给父进程发信号
【代码】Linux--验证子进程退出时,会给父进程发信号。原创 2023-08-15 22:24:09 · 64 阅读 · 0 评论 -
Linux--处理信号期间,打印一下该信号的pending
【代码】Linux--处理信号期间,打印一下该信号的pending。原创 2023-08-15 18:11:47 · 68 阅读 · 0 评论 -
Linux--当某个信号的处理函数被调用时,内核自动将当前信号加入进程的信号屏蔽字
【代码】Linux--当某个信号的处理函数被调用时,内核自动将当前信号加入进程的信号屏蔽字。原创 2023-08-15 17:51:14 · 30 阅读 · 0 评论 -
Linux--成功运行且获取信号默认处理动作和成功捕捉信号的代码
【代码】Linux--成功运行且获取信号默认处理动作和成功捕捉信号的代码。原创 2023-08-15 16:45:03 · 41 阅读 · 0 评论 -
Linux--打印信号全被屏蔽的函数
【代码】Linux--打印信号全被屏蔽的函数。原创 2023-08-13 19:54:22 · 28 阅读 · 0 评论 -
Linux--写一个信号都被屏蔽的函数
【代码】Linux--写一个信号都被屏蔽的函数。原创 2023-08-13 19:49:07 · 29 阅读 · 0 评论 -
Linux--.如何让我们看到输出结果的比特位由0变成1
【代码】Linux--.如何让我们看到输出结果的比特位由0变成1。原创 2023-08-13 19:39:02 · 33 阅读 · 0 评论 -
Linux--如何对定义的两个信号集变量初始化为空信号集?
在你的代码中,你首先定义了两个信号集变量 `set` 和 `oset`,然后使用 `sigemptyset` 函数将它们初始化为空信号集。通常,你会在设置信号处理程序时使用信号集,通过 `sigaddset`、`sigdelset` 等函数来操作信号集中的信号。这段代码使用了信号集(`sigset_t`)以及两个相关的函数:`sigemptyset`。但是,这只是初始化了空信号集,并没有将任何具体的信号添加到集合中。信号集用于存储一组信号,可以通过操作信号集来管理和处理信号。`:这是一个函数,用于。原创 2023-08-13 17:33:29 · 26 阅读 · 0 评论 -
Linux--将alarm写入while循环里搭配sleep
【代码】Linux--将alarm写入while循环里搭配sleep。原创 2023-08-12 21:00:09 · 61 阅读 · 0 评论 -
Linux--检测子进程返回的信号的core dump标志位和终止信号的那七位
【代码】Linux--验证进程等待中的core dump标记位。原创 2023-08-12 18:28:38 · 48 阅读 · 0 评论 -
Linux--信号捕捉的时候没有while循环
【代码】Linux--信号捕捉的时候没有while循环。原创 2023-08-12 15:55:32 · 32 阅读 · 0 评论 -
Linux--while(true) sleep(1) 的作用?
然而,由于循环中没有其他实际的工作,而只是通过 `sleep(1)` 函数进行等待,这将会导致 CPU 不断地在循环内部忙等待,浪费了大量的计算资源。在实际应用中,更好的做法是使用操作系统提供的等待机制,如等待信号的到来而不占用 CPU 时间。这样的循环被称为“忙等待”循环,因为它在每次循环迭代中都在执行相同的操作,没有实际的进一步任务。如果你希望在处理信号时能够更高效地等待,你可以考虑使用类似于 `sigwait()` 这样的函数,它会阻塞程序直到指定的信号到来。这样可以避免不必要的 CPU 使用。原创 2023-08-11 15:16:01 · 629 阅读 · 0 评论 -
Linux--如何用一个信号捕捉函数处理多个信号?
【代码】Linux--如何用一个信号捕捉函数处理多个信号?原创 2023-08-11 15:06:24 · 54 阅读 · 0 评论 -
Linux--如何捕捉所有信号?
【代码】Linux--如何捕捉所有信号?原创 2023-08-11 15:05:03 · 83 阅读 · 0 评论 -
Linux--操作系统级别的类型
pid_tkey_tssize_t原创 2023-08-11 13:34:28 · 29 阅读 · 0 评论 -
Linux--页表和MMU的关系
2. **内存管理单元(MMU:Memory Manage Unit):** MMU 是一种硬件组件,负责在程序运行时执行虚拟地址到物理地址的转换。MMU通过读取页表的内容,根据虚拟地址找到对应的物理地址,并将其传递给系统总线,从而实现有效的虚拟内存管理。在使用虚拟内存的系统中,每个进程都有自己的页表,用于管理它的虚拟地址空间与物理内存之间的映射关系。当程序访问虚拟地址时,MMU会查找页表,找到对应的物理地址,并将该物理地址传递给内存系统,以获取相应的数据或指令。原创 2023-08-10 17:49:33 · 203 阅读 · 0 评论 -
Linux--对于vector<func>类型,如何将不同的函数插入对应的数组下标
push_back(函数名)原创 2023-08-10 16:11:01 · 65 阅读 · 0 评论 -
Linux--每隔一秒输出一次计算结果
【代码】Linux--每隔一秒输出一次计算结果。原创 2023-08-10 16:07:26 · 190 阅读 · 0 评论 -
Linux--计算CPU算力
【代码】【无标题】原创 2023-08-10 14:53:59 · 224 阅读 · 0 评论 -
Linux--写一个闹钟验证1秒之内会进行多少次count++的功能
【代码】Linux--写一个闹钟验证1秒之内会进行多少次count++的功能。原创 2023-08-10 14:37:24 · 70 阅读 · 0 评论 -
Linux--实现输入./mykill 2 pid终止pid进程的代码
【代码】Linux--实现输入./mykill 2 pid终止pid进程的代码。原创 2023-08-10 11:06:16 · 95 阅读 · 1 评论 -
Linux--core dump打开的情况下,运行下面的代码,会发生什么?
【代码】Linux--core dump打开的情况下,运行下面的代码,会发生什么?原创 2023-08-10 08:44:48 · 73 阅读 · 0 评论 -
Linux--string转换为char*
string对象.c_str()函数。原创 2023-08-06 20:34:37 · 114 阅读 · 0 评论 -
Linux--for(;;)
等价于while(true),无限死循环。原创 2023-08-06 14:18:42 · 44 阅读 · 0 评论 -
Linux--windows版本的Sleep
【代码】Linux--windows版本的Sleep。原创 2023-08-06 14:17:16 · 76 阅读 · 0 评论 -
Linux--给每个步骤添加日志
【代码】Linux--给每个步骤添加日志。原创 2023-08-05 09:30:21 · 131 阅读 · 0 评论