- 博客(208)
- 收藏
- 关注
原创 如何在Mac电脑上的VScode去配置C/C++环境
我觉得很多人照着网络上的视频可能卡在了#include这里。然后发现这里报错而不知道。其实问题出在你的Mac电脑没有安装gcc而是用的苹果电脑自带的clang所以用不了。
2025-05-14 12:41:17
477
原创 心理学——什么是悲伤五阶段
不过,悲伤五阶段的理论并不是一个线性的过程,有时我们会在某个阶段停留较久,或者反复回到某个阶段。例如,可能会经历“愤怒”之后,又回到“否认”阶段,或者在“接受”之后,仍然会有偶尔的悲伤和遗憾。意识到这一点,并且开始主动思考如何从这段痛苦的因果中解脱出来,这是必不可少的如若你意识到这一点,说明你已经在走向“接受”,又或者至少开始意识到这个过程的开始。相信自己,你的智慧和反思一定会带你走得更远,找到更深的内心平和与自由。陷入痛苦而不知自的人,可能或快或慢的走完属于自己的悲伤五阶段。
2024-11-28 18:06:41
498
原创 全面理解C++函数最难理解的部分:数组形参,函数指针,以及函数指针作为形参
函数指针的声明包含函数的返回类型和参数类型。这里,ReturnType是函数的返回类型ParameterTypes是函数的参数类型列表(用逗号分隔)pointerName是你选择的指针名称。例如,以下代码定义了一个名为fp我们讨论了几个关于函数形参以及函数指针的主题:数组形参:我们首先讨论了数组形参的特性,以及为什么它们在传递到函数时会被自动转换为指向数组首元素的指针。这是由于C++的两个规则导致的:一是数组是不允许拷贝的,二是在使用数组时通常会将其转换为指针。
2023-06-01 10:22:56
3044
1
原创 《程序员面试金典(第6版)》面试题 16.25. LRU 缓存(自定义双向链表,list库函数,哈希映射)
在这道题当中,我们需要实现两个函数,get 和 put。get函数就是查找缓存中对应key的value。put函数就是把元素放到容器内,如果容器满了,就挑一个删除了,再添加。根据题意,当容器满了时,我们要删除的元素是,最长时间未被使用的元素,这里我们使用的容器是双向链表,我们每次都从链表的头部开始添加元素,如果容器满了,需要删除的元素就一定是容器尾部的元素。再者,我们如果查询了这个元素,而这个元素又在容器内的话,我们就要把它重新移动到头部,那如何移动呢?
2023-05-30 21:00:55
1034
1
原创 全面理解:C++中list(双向链表)容器的基础概念与函数解析
在C++标准库中,list是一种双向链表,允许在任何位置进行快速的插入和删除操作。list在任何位置插入和删除元素都有相对稳定的性能,而不是依赖于元素在容器中的位置。我们讨论了list的多种构造函数,包括默认构造函数、初始化列表构造函数、以及从其他容器复制元素的构造函数。我们也介绍了 splice() 函数,这是一个非常有用的成员函数,它可以高效地将元素从一个列表移到另一个列表。splice()有三种重载版本,它们都不会导致元素内容的复制或移动,而是重新链接节点指针,因此速度非常快。
2023-05-30 20:28:49
1841
原创 全面理解:C++中的指针和迭代器,以及解引用操作符(*)和箭头操作符(->)的用法
我们主要讨论了C++中的指针和迭代器,以及解引用操作符(*)和箭头操作符(->)的用法。指针是一种变量,它存储了另一种类型的对象在内存中的地址。通过指针,你可以直接访问和修改它指向的对象。迭代器是一种专门的对象,它用于遍历并操作某种数据结构(例如数组、列表、集合等)中的元素。迭代器为操作各种数据结构提供了一种统一的接口。解引用操作符(*)用于获取指针或迭代器指向的对象。箭头操作符(->)用于访问指针或迭代器指向的对象的成员。
2023-05-29 20:02:54
5361
2
原创 全面理解链表数据结构:各种节点操作、做题技巧,易错点分析与题目清单(C++代码示例,不断更新)
我们都知道,单向链表这种数据结构都是由一个个节点组成的,那单向链表节点这种结构体都由什么组成呢?当然是由一个节点的值,与节点的一个next指针组成,以及构建节点的构造函数组成。其中节点的next指针,指向了该链表的下一个节点的元素位置。所以,当我们创建单向链表节点的这个结构体的时候,需要指定以下元素节点的值节点的next指针节点的构造函数(用于初始化一个新的节点,不然如何创建一个新的节点(链表)呢?int val;// 节点的值 ListNode * next;
2023-05-27 09:48:08
2145
2
原创 《程序员面试金典(第6版)》面试题 02.08. 环路检测(哈希法,双指针,检测链表是否有环)
这道题目是一个经典的链表问题,经常出现在计算机科学和软件工程的面试和教程中。数据结构理解与应用:这道题目需要你理解和操作链表这种基础数据结构。理解数据结构的特性和操作方法是编程和算法学习的基础。双指针技巧:这道题目需要使用到双指针(快慢指针)的技巧。这是一个常用的算法设计策略,可以帮助解决一些看似复杂的问题。算法分析:通过这道题目,你需要理解和分析算法的时间复杂度和空间复杂度。这道题的解决方案有一个很好的性质:它只需要常量的额外空间,且时间复杂度为线性。
2023-05-26 15:36:24
1418
原创 《程序员面试金典(第6版)》面试题 02.07. 链表相交(查找节点操作,哈希表,双指针(先走n步法,交替遍历法))
这道题主要在于提高你的数据结构和算法的理解与应用能力,尤其是对链表和指针操作的理解。提高对链表结构的理解:链表是一种基础且常用的数据结构,掌握它的特性和如何操作它是非常重要的。这道题目帮助你理解链表的基本概念,例如节点、指针以及如何遍历链表等。提高对指针操作的理解:这道题目要求你找到两个链表的交点,这需要你理解并操作指针。你需要清楚地知道如何通过比较内存地址(即指针的值)来确定链表是否相交。提高解决问题的策略:这道题目提供了多种解决方案,例如,你可以使用哈希表来存储链表的节点,或者使用两个指针进行遍历。
2023-05-25 16:50:52
827
原创 《程序员面试金典(第6版)》面试题 02.05. 链表求和(构建一个新链表)
链表操作:这道题目考察了对链表的基本操作,包括创建新节点,遍历链表,以及处理链表节点之间的链接关系。数据结构的选择:在不同的数据表示下,相同的问题可能需要不同的解决策略。例如,这个问题中,数位是反向存放的,这样我们可以直接从链表的头部开始操作,方便处理进位问题。但在进阶问题中,数位是正向存放的,我们就需要将链表反转或者使用栈等数据结构,才能便捷地处理进位问题。大数运算:这道题目也间接涉及到了大数运算的问题。
2023-05-24 21:31:32
812
原创 《程序员面试金典(第6版)》面试题 02.03. 删除中间节点(特殊的删除节点操作)
至于这道题的意义,主要是考察你对链表结构的理解和操作能力。链表是一种基础的数据结构,能够熟练地操作链表,对于任何一个软件工程师都是非常重要的。特别是,这道题目还设计了一个特殊的约束:你已知的只是要删除的节点本身,而不是它的前一个节点。通常,如果我们有了前一个节点,那么删除链表中的一个节点就变得非常简单了。但是在这种特殊情况下,你需要找到一种新的方法,也就是你实现的这种方法,把下一个节点的值复制到当前节点,然后删除下一个节点。
2023-05-23 15:35:28
539
原创 《程序员面试金典(第6版)》面试题 02.02. 返回倒数第 k 个节点(双指针法,链表)
这道题的主要目的是考察你对链表数据结构的理解以及编程技巧。链表是一种基本的数据结构,在很多编程语言和计算机科学问题中都会出现。熟悉并理解链表是很重要的基础知识。具体来说,这个问题考察了以下几个方面:链表的理解:你需要了解链表的结构,如何遍历链表,以及如何确定链表的长度。编程技巧:这个问题特别关注你是否可以找到一个高效的解决方案。最直接的方法可能是先遍历整个链表以确定其长度,然后再次遍历来找到倒数第 k 个节点。但是这需要两次遍历。
2023-05-23 14:53:05
462
原创 《程序员面试金典(第6版)》面试题 02.01. 移除重复节点(哈希映射,多指针暴力破解,链表)
这道题主要是为了测试以下几个方面的能力:基础数据结构理解:理解和处理链表是编程和数据结构中的基本技能。你需要了解如何遍历链表、如何修改链表节点之间的连接,以及如何在链表中插入和删除节点。编程技巧:这道题需要你实现一个功能,去除链表中的重复元素。这既可以考察你对于基础算法的理解,也可以考察你编程的技巧和代码质量,例如,你能否写出没有内存泄漏的代码。空间和时间复杂度权衡:这道题的进阶部分是在不使用额外空间的情况下解决问题,这就需要你去考虑如何在空间和时间复杂度之间做出权衡。
2023-05-23 14:11:57
500
原创 《程序员面试金典(第6版)》面试题 02.06. 回文链表(双指针(快慢指针),查找链表中间节点,反转链表)
这道题目是关于链表操作和回文识别的。链表是一种常用的数据结构,而回文是一种对称的特性,出现在很多算法和数据结构问题中。该题目测试了你对链表操作的理解,以及你对如何使用常量空间来解决问题的理解。对于这道题的实际意义,可以从以下几个方面理解:对数据结构的理解和操作:链表是一种基础且常用的数据结构,理解和掌握链表的操作是非常重要的。这道题测试了你对链表的理解和操作能力。算法设计:这道题目需要你设计一个算法来解决问题。这考察了你的问题解决能力,包括如何将问题分解,如何设计算法,以及如何实现算法。空间复杂度优化。
2023-05-22 20:38:17
614
原创 全面理解:在计算机科学中同步、异步、并行、并发,他们之间到底有什么区别,如果正确更好的区分它们?
在计算机科学中,同步和异步是描述系统如何处理操作或任务的术语。同步操作是那些在完成之前阻塞进程或线程的操作。也就是说,在开始一个同步操作后,你必须等待它完成,然后才能开始执行另一个操作。例如,如果你在程序中进行网络请求,同步操作会使程序等待请求的结果,然后才继续执行。如果网络请求耗时较长,这可能导致程序在等待期间无法响应。异步操作则不同,当你启动一个异步操作时,它将立即返回,让你的程序可以继续执行其他操作。异步操作在后台运行,当它完成时,会以某种方式(通常是通过回调函数或者事件)通知你的程序。
2023-05-19 08:26:45
4313
原创 《程序员面试金典(第6版)》面试题 16.24. 数对和(哈希映射,双指针)
这道题目是一道经典的算法设计题,主要考察了以下几个方面:对哈希表数据结构的理解和应用:哈希表是一种常用的数据结构,它可以用于快速查找元素,是许多算法问题的关键。在这道题目中,哈希表被用来记录数组中的元素及其出现次数。对双指针技术的理解和应用:双指针是一种常用的遍历技术,可以在遍历数组或链表时提供额外的信息。在这道题目中,双指针被用来在有序数组中寻找满足特定条件的元素对。对排序算法的理解和应用:如果采用双指针的解法,你需要首先对数组进行排序。排序是编程中非常常见的任务,对其理解和掌握是非常重要的。
2023-05-17 15:01:54
323
原创 全面理解前台进程,后台进程的概念,以及之间如何切换,init进程与系列文章大总结(系列文章第四篇)
系统级别的进程:这些通常是由操作系统在启动时自动创建的进程,它们执行的任务通常与系统管理、硬件抽象、资源分配和控制等相关。它们通常由特权用户(如root)启动,并且运行在更高的权限级别。这些进程通常不会因为用户登录和注销而结束,因此它们常常被称为守护进程(daemon)。用户级别的进程:这些进程通常是由用户手动启动的,用于执行特定的任务或运行特定的应用程序。它们的生命周期通常与用户的会话(即登录和注销)相关联,而且它们通常运行在普通的用户权限级别下。
2023-05-16 22:18:42
4138
2
原创 全面理解守护进程的基础概念,以及如何创建一个守护进程(系列文章第三篇)
守护进程(daemon)是在 Unix 和类 Unix(如 Linux)操作系统中运行的一种特殊的后台进程,它们独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程通常在系统引导装载时启动,并且在系统关闭之前一直运行。守护进程的名称通常以 "d" 结尾,以便于区分。例如,sshd 是 Secure Shell 守护进程,httpd 是 HTTP 守护进程。这些进程在后台运行,提供各种服务,例如处理网络请求(如 web 服务器)、处理系统日志、处理电子邮件和其他各种任务。
2023-05-16 17:09:28
1988
1
原创 标准C库函数fprintf(),sprintf(),snprintf()的函数使用方法(往文件中写入数据,将变量的值转换成字符串输出)
fprintf(), sprintf(), 和 snprintf()都是C语言的标准库函数,用于进行格式化输出。这些函数都需要接受至少一个C风格字符串作为参数。C风格字符串是一个以’\0’(空字符)结尾的字符数组。fprintf()函数将格式化的输出写入一个FILE对象所指向的流。sprintf()函数将格式化的输出写入一个字符数组。snprintf()函数与sprintf()类似,但它需要一个额外的size参数,用于限制写入字符数组的字符数量,以防止缓冲区溢出。
2023-05-16 15:44:58
4132
原创 Linux系统调用函数time()、标准C库函数ctime(),localtime()函数讲解以及它们之间的区别
time():这是一个Linux系统调用,用于获取当前的系统时间。它返回自1970年1月1日00:00:00 UTC(也称为UNIX纪元)开始到当前系统时间的秒数。当你向time()函数传递一个非NULL的time_t类型的指针时,这个函数会将当前的UNIX时间戳写入到这个指针指向的变量中。ctime():这是一个标准C库函数,用于将time_t类型的时间转换为可读的字符串格式。它接收一个指向time_t类型的指针作为参数,然后返回一个表示当地时间的字符串。
2023-05-16 15:05:26
3710
原创 Linux系统调用函数open()、标准C库函数fopen()函数讲解以及它们之间的使用区别
open() 是 Linux 系统调用,用于打开或创建文件。它返回一个文件描述符,用于后续的文件操作。open() 提供了底层的、无缓冲的 I/O,直接与操作系统内核交互。fopen() 是标准 C 库函数,也用于打开或创建文件。它返回一个 FILE * 指针,用于后续的文件操作。fopen() 提供了更高级别的接口,包括缓冲和文件位置管理。由于 fopen() 是库函数,所以它在所有支持 C 标准库的系统上都可用。
2023-05-16 11:13:25
4866
原创 《程序员面试金典(第6版)》面试题 16.22. 兰顿蚂蚁(哈希映射,C++)
这道题目是一道模拟题,其主要目的是考察编程能力、逻辑思考能力以及对细节的把握。题目中蚂蚁在格子上行走的规则,以及最后需要返回的结果都具有一定的复杂性。这要求你能够准确地理解题意,找出解题的规律,并且把规律用代码实现出来。对数据结构的运用:这道题中需要用到嵌套的哈希表来记录蚂蚁走过的每个格子的颜色。对模拟问题的处理:你需要根据题目的描述,模拟出蚂蚁在格子上行走的过程。对边界的处理:你需要找出蚂蚁走过的格子中x坐标和y坐标的最大值和最小值,以此来确定最后返回结果的大小。
2023-05-15 08:18:37
587
原创 《程序员面试金典(第6版)》面试题 16.21. 交换和(哈希法,双指针,二分查找)
这道题目是一个典型的算法题,主要考察了解决问题的能力、编程技巧和对算法时间复杂度的把控。通过这道题目,你可以学习和掌握不同的算法方法,如暴力解法、双指针技术、排序与二分查找、哈希法等,并深入理解它们的优缺点。培养解决问题的能力:这道题需要找到两个数组中各取一个元素交换后,使得两个数组的元素之和相等。在解决这个问题的过程中,你需要学会如何根据题目要求分析问题,寻找解决方案。提高编程技巧:通过实现不同的解决方案,你可以提高自己的编程技巧,例如使用双指针技术、排序和二分查找,哈希法等方法。
2023-05-14 09:23:49
605
原创 全面理解进程组,会话的基础概念,以及进程组,会话,控制终端,前台进程组与后台进程组之间的联系(系列文章第二篇)
进程组是一种将进程组织在一起的方法,会话则是将进程组组织在一起的方法。进程组和会话之间的关系是为了更好地对进程进行组织和管理。多个相关的进程组成一个进程组,多个相关的进程组又可以组成一个会话。在一个会话中,有一个前台进程组和一个或多个后台进程组。控制终端则关联到会话,负责接收用户的输入并将其传递给前台进程组,同时也负责显示来自进程的输出。
2023-05-13 20:40:14
1297
原创 全面理解哈希,哈希的底层原理是如何实现的,哈希题型的做题思路与题目清单(不断更新)
哈希的底层原理基于哈希函数和哈希表。哈希函数将输入映射到固定大小的输出,即哈希值。哈希表是一个数组,用哈希值作为索引来存储数据。查找、插入和删除操作的平均时间复杂度是O(1),因为可以直接通过哈希值找到元素的存储地址,无需逐一查找。但在哈希冲突(两个元素哈希值相同)的情况下,时间复杂度可能变为O(n)。C++ STL库中,unordered_set和unordered_map基于哈希表实现,set和map基于红黑树(一种自平衡二叉查找树)实现。
2023-05-13 15:52:39
1648
1
原创 《程序员面试金典(第6版)》面试题 16.20. T9键盘(哈希映射,C++)
哈希映射:这道题目需要你设计一个哈希映射来实现字母到数字的转换。哈希映射是一种常见的数据结构,可以用来高效地查找和存储数据。字符串处理:你需要处理输入的字符串,包括分析单词和数字序列,这要求你具有基本的字符串操作技巧。逻辑思维和细节处理:你需要设计一个算法来判断单词是否与数字序列匹配,这需要你具有清晰的逻辑思维和对细节的把握。此外,这道题目还具有实际的应用价值。例如,一些老式的手机键盘输入法就是使用类似的方法来实现的。每个数字键都对应几个字母,用户可以通过输入数字序列来输入单词。
2023-05-13 11:17:05
696
原创 深度优先搜索算法思想,题型总结与题目清单(不断更新)
深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。这个名称直接来自于这个算法的操作方式:它沿着某一路径深入遍历直到无法继续,然后再回溯进行下一条路径的遍历。:在图或树中查找从一个节点到另一个节点的路径,或者查找满足特定条件的路径。:在图中检测两个节点是否连通,或者计算图中连通分量的数量。:DFS可以用于有向图的拓扑排序,即对有向图的节点进行排序,使得对每一条有向边(u, v),u都在v之前。
2023-05-12 20:55:27
1175
原创 《程序员面试金典(第6版)》面试题 16.19. 水域大小(深度优先搜索,类似棋盘类问题,八皇后的简化版本,C++)
这道题目主要是为了考察求解者对深度优先搜索(DFS)和图遍历的理解和应用能力。在实际应用中,这种类型的问题可能出现在一些地理信息系统(GIS)或者环境科学的领域,比如:水体识别和测量:这个问题可以用于识别和测量地图上的水体。给定一张地形图(通过海拔高度表示),我们可以计算出地图上水体(海拔高度为0的区域)的数量和大小。连通区域识别:在计算机视觉或图像处理中,这个问题可以用于识别图像中的连通区域。例如,我们可以使用类似的方法来识别和测量图像中的特定颜色或纹理的区域。
2023-05-12 20:41:38
670
原创 全面理解shell进程、终端、控制终端的概念,以及它们之间有什么区别与联系?(系列文章第一篇)
Shell 进程:当你打开一个终端窗口时,会启动一个 Shell 进程。这个 Shell 进程提供一个命令行界面,用于接收用户的输入,解析这些输入,然后执行相应的命令。终端:终端是用户与操作系统交互的接口。用户在终端输入命令,这些命令由 Shell 进程接收并执行。执行的结果再通过 Shell 进程返回到终端显示。交互方式:用户在终端输入命令,Shell 进程接收并解析这些命令,然后调用相应的程序执行。执行的结果再通过 Shell 进程返回到终端,显示给用户。关系:Shell 进程和终端之间的关系非常密切。
2023-05-11 21:51:39
3377
2
原创 共享内存的基础概念,函数用法,Linux相关命令和与内存映射的关系
共享内存是一种允许多个进程访问相同内存区域的技术,可以用于实现高效的进程间通信。共享内存有多种使用方法,如内存映射文件和匿名共享内存等。在使用共享内存时,需要注意同步和互斥问题以确保数据的一致性和完整性。。
2023-05-11 20:25:48
762
原创 《程序员面试金典(第6版)》面试题 16.18. 模式匹配(暴力破解 + 剪枝)
这道题目的主要意义在于考察程序员处理字符串模式匹配的能力,以及对算法复杂度优化的理解。字符串模式匹配:这是一个在实际编程中非常常见的问题,例如在文本编辑器的查找和替换功能、正则表达式匹配等场景中都需要处理这类问题。这道题目要求考察者根据给定的模式,找出一个或两个子串(对应模式中的 ‘a’ 和 ‘b’)来使得整个字符串满足该模式,这需要考察者对字符串操作的熟练程度以及对模式匹配问题的理解。算法复杂度优化。
2023-05-11 20:02:47
1154
原创 全面理清概念,C风格字符串(多重定义方式,区别,易错点)
字符数组方式定义C风格字符串编译器会自动计算字符串长度,并为字符数组分配适当的空间(包括空字符)。这个例子中,str 是一个包含14个字符的数组,包括13个实际字符和1个空字符。指针方式定义C风格字符串str 是一个指针,它指向一个字符串常量。因此,尽管你可以更改指针指向的位置,但不能通过指针来更改字符串内容。试图修改字符串常量的内容可能导致未定义的行为。// 错误!不能修改字符串常量的内容在使用这种写法时,字符串的长度不需要显式指定。编译器会自动计算字符串长度,并在末尾添加空字符。
2023-05-10 16:05:22
2497
1
原创 Linux系统调用函数shmdt()、shmctl()(分离共享内存段,设置共享内存段的属性/删除共享内存段)
这篇文章介绍了Linux系统调用中的shmget、shmat函数与标准C库中的ftok函数。标准C库内容简介,标准C库函数常用函数与函数文章索引(不断更新)Linux系统调用函数文章索引。
2023-05-10 14:41:59
2896
原创 Linux系统调用函数shmget()、shmat(),标准C库函数ftok()(创建共享内存段,创建共享内存段的键,把共享内存段加入当前的进程的地址空间中)
如果,想要深入的学习Linux系统调用中的shmget、shmat函数与标准C库中的ftok函数,还是需要去自己阅读Linux系统中的帮助文档。即可查阅到完整的资料信息。
2023-05-09 21:46:29
4521
原创 《程序员面试金典(第6版)》面试题 16.17. 连续数列(贪心算法思想,动态规划算法思想,C++)
算法设计思路:这道题目提供了一个平台,让我们可以学习和探讨不同的算法设计思路,例如贪心算法、动态规划和分治法。通过比较和分析这些方法的优缺点,我们可以更好地理解这些算法设计思路及其应用场景。问题求解能力:解决这类问题可以锻炼我们的问题分析和解决能力。通过思考问题,我们学会将问题拆解成更小的子问题,然后寻找合适的方法将这些子问题的解合并成原问题的解。这种能力在实际编程工作中非常重要。代码实现技巧:编写不同解法的代码可以提高我们的编程技巧。例如,在实现动态规划解法时,我们需要考虑状态的表示和状态转移方程;
2023-05-09 10:44:08
488
原创 《程序员面试金典(第6版)》面试题 16.16. 部分排序(double双指针(多指针),C++)
问题分析:题目要求在给定的整数数组中找到一个最短的子数组,使得对这个子数组进行排序后整个数组变为有序。这需要编程者能够充分理解题意并分析问题。编程思维:编程者需要思考如何高效地找到这个子数组的边界。这道题目要求实现一个高效的解决方案,因此编程者需要思考如何避免不必要的计算,如何降低时间复杂度。编码技巧:在实现解决方案的过程中,编程者需要熟练地使用循环、条件语句和数组操作等基本编程元素。此外,编程者还需要注意避免一些常见的错误,如死循环。
2023-05-08 17:45:07
621
原创 英语中表语从句的概念及其用法,例句(不断更新)
表语从句是一个从句,它在主句中充当表语成分。也就是用一个从句去充当复杂句中系动词之后的那个表语。表语是连接动词(如 “be”、“seem”、“become” 等)所需的成分,用来对主语进行补充说明或描述。表语从句起到与名词、形容词或副词相似的作用,用于解释主语的状态或特征。系动词不一定是be动词,也有可能是feel,seem,look,taste这样的系动词。
2023-05-08 10:09:48
3604
原创 Linux中信号的基础知识
总之,信号是Linux中一种重要的进程间通信机制,它提供了一种简单、灵活的方式来处理进程间的通知和事件。然而,信号机制的异步性和非阻塞性也导致了一些困难和问题,例如竞态条件和信号处理的复杂性。因此,在某些场景下,其他进程间通信机制,如管道、消息队列和共享内存等,可能会更加适合。。
2023-05-08 08:49:29
1531
原创 Linux系统调用之sigprocmask、sigpending函数(设置内核阻塞信号集,查看内核未决信号集)
这篇文章介绍了标准C库中的sigprocmask、sigpending这两个函数。标准C库内容简介,标准C库函数常用函数与函数文章索引(不断更新)Linux系统调用函数文章索引。
2023-05-07 16:04:38
1058
原创 《程序员面试金典(第6版)》面试题 16.15. 珠玑妙算
问题分析与抽象:题目描述了一个实际的游戏场景,要求编写一个函数来模拟游戏过程中计算猜中和伪猜中的次数。这要求你能够理解游戏规则,将实际问题抽象成算法问题。字符串操作:这道题目涉及到对字符串的操作,包括遍历字符串、比较字符和修改字符串。这要求你具备基本的字符串操作能力。循环结构:解决这个问题需要使用循环结构。你需要嵌套循环来找到猜中和伪猜中的次数。这要求你能够熟练使用循环结构来解决问题。数组或向量的使用:题目要求返回一个包含两个元素的数组或向量。
2023-05-07 11:05:14
569
大数据安全期末考试复习题 + 答案 + 我制作的一个html网页(点击题目就会出现答案,再次点击,答案消失)方便大家复习
2023-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人