- 博客(23)
- 收藏
- 关注
原创 Linux------多线程开发
用于对互斥锁进行加锁操作。如果互斥锁已经被其他线程锁定,当前线程将被阻塞,直到互斥锁被解锁。在Linux中多线程开发依赖pthread库。此函数用于等待指定线程结束,并获取其返回值。此函数的作用是创建一个新线程。该函数的功能是终止当前线程。创建、销毁、广播、等待、触发。用于对互斥锁进行解锁操作。1. 互斥锁相关函数原型。,失败时返回非零错误码。,失败时返回非零错误码。,失败时返回非零错误码。多线程开发主要涉及到。创建、销毁、加锁、解锁。用于销毁一个互斥锁。用于初始化条件变量。
2025-03-26 21:52:22
709
原创 Linux------进程间通信(IPC)
头文件stdio.h:提供标准输入输出函数,如printf。stdlib.h:包含通用工具函数,如exit。:定义了许多系统数据类型,为后续系统调用函数提供类型支持。sys/ipc.h:包含用于进程间通信(IPC)的键生成函数ftok。sys/sem.h:提供了与信号量操作相关的函数和数据结构,如semgetsemopsemctl等。unistd.h:包含了许多 UNIX 标准库函数,如forksleepwait等。宏定义:定义要创建的子进程数量,这里为 5。
2025-03-25 22:03:22
862
原创 Linux------进程总结
4.wait()函数和waitpid()函数(1.getpid()函数(3.vfork()函数 (6.system()函数(5.exec()族函数(7.popen()函数(2.fork()函数(
2025-03-22 19:51:09
114
原创 Linux------system()函数
如果 system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。system()函数的。
2025-03-22 19:49:23
285
原创 exec配合fork族函数使用
代码实现,changedata为之前修改文件参数的函数编译的程序,利用execl()函数直接调用此函数。简化代码,提高代码的复用性,并且使得代码更加简洁。
2025-03-22 18:54:21
104
原创 linux进程------exec族函数
调用成功后不会继续执行原程序,代码会调用echoarg.c文件的程序。当成功调用后会返回如下信息,并且不再继续执行原程序。perror("why")函数可以打印出错误信息。环境变量的修改:export 命令。函数的区别,参数上的区别。可在添加的路径运行程序。查看:echo 命令。
2025-03-21 21:16:00
161
原创 linux操作系统学习
代码实际运用,waitpid函数设置如下参数后不会阻塞父进程,子进程会变成僵尸进程(用的不多)break会破坏cnt值,用exit退出会,cnt的值不会被破坏会继承在子进程中的值。优化代码:fork()函数会返回2次值,返回值为0时,表示当前进程为子进程。父进程直接结束,获取父进程id函数getppid();在fork()函数中,父进程和子进程会同时运行,pid = 0称为交换进程 作用:进程调度。(1)函数fork();孤儿进程被pid等于1的进程收留。top: 类似任务管理器。
2025-03-21 21:15:51
224
原创 linux系统编程
3.文件写入函数(返回值为写入文件的字节数)光标逻辑(写入数据后,光标在写入数据后,可以通过土方法重新打开让光标位置复原)fread和fwrite返回值为读取写入的数量,取决于第三个参数,写数量不够时等于第三参数,读数量不够时,读取真实数量。1.来源:open是unix系统下的返回文件描述符,fopen是ansic标准中的库函数返回指向文件的指针。(1)读写函数的返回值 fd 都是 文件描述符(程序的索引)静态文件为存储在内存的文件,动态文件是open静态文件之后的。
2025-03-19 20:44:56
380
原创 信号与槽的4种实现方式
表达式进行 信号与槽的连接。这种方式可以直接 在连接点使用匿名函数,使代码更加简洁。最常用的方式,直接通过 QObject::connect 函数连接信号和 槽。命 名的槽会自动连接到相应的信号。在Qt Designer。1.使用 QObject::connect。时,可以通过命名约定自动连接信号和槽。连接信号和槽,这种方式类型安全,中引入,允许使用函数指针直接。
2025-03-13 19:44:26
135
原创 基础算法思想——双指针(C++)
该算法确保在O(n)O(n)时间内将零移动到vector的末尾,其中nn是vector的长度。虽然是一道简单的算法题,但我觉得这个方法才是最能体现算法意义以及乐趣的。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,来遍历vector。,编写一个函数将所有。该算法使用两个指针,
2024-04-23 11:21:15
327
原创 128.最长连续序列(C++实现)
4. 然后判断当前元素和下一个元素的关系:如果相邻且不相等,说明找到了一个可能的连续序列的起点;否则,说明当前元素不在任何连续序列中,将临时序列长度max\_t重置为1。6.然后判断当前元素和下一个元素的关系:如果相邻且不相等,说明找到了一个可能的连续序列的起点;否则,说明当前元素不在任何连续序列中,将临时序列长度max_t重置为1。3. 初始化两个变量max\_r和max\_t,分别表示当前最长序列的长度和临时序列的长度。5.对于每个元素,首先更新当前最长序列的长度max_r。
2024-04-23 10:32:16
454
原创 49.字母异位词分组(C++实现)
1. 定义一个二维动态数组result,用于存储最终分组后的字符串数组。2. 定义一个unordered_map,用于存储每个字符串排序后的结果以及对应的原字符串数组。3. 遍历输入的字符串数组strs。4. 对每个字符串进行排序,得到排序后的字符串sortedStr。5. 将原字符串str与排序后的字符串sortedStr作为键值对存入unordered_map中,对应的值为其在result中的下标。
2024-04-23 10:06:24
287
原创 java: 无法访问org.springframework.boot.SpringApplication
错误的类文件: /D:/maven/apache-maven-3.9.4/cangku/org/springframework/boot/spring-boot/3.1.3/spring-boot-3.1.3.jar!更新依赖库版本:如果你的项目中的Spring Boot版本正确,但仍然遇到版本不兼容的错误,那么可能是某个依赖库的版本与Spring Boot不兼容。检查项目的Spring Boot版本:确保你的项目使用的Spring Boot版本与你所使用的依赖库版本兼容。文件(如果是Maven项目)或。
2023-09-18 15:21:29
1432
原创 Spring Boot自动配置原理
(1)no这是Spring框架的默认设置,在该设置下自动装配是关闭的,开发者需要自行在bean定义中用标签明确的设置依赖关系。(2)byName根据Bean的名字进行自动装配。当向一个bean中自动装配一个属性时,容器将根据bean的名称自动在在配置文件中查询一个匹配的bean。如果找到的话,就装配这个属性,如果没找到的话就报错。(3)byType根据Bean的类型进行自动装配。当向一个bean中自动装配一个属性时,容器将根据bean的类型自动在在配置文件中查询一个匹配的bean。如果找到的话,就装配这个属
2023-09-18 10:42:04
191
原创 Unity2022编辑器为动画添加的脚本StateMachineBehaviour
在该方法中,animator参数表示触发状态进入事件的动画控制器,stateInfo参数表示所触发状态的当前状态信息,layerIndex参数表示所触发状态所在的层级。在该方法中,animator参数表示触发状态更新事件的动画控制器,stateInfo参数表示所触发状态的当前状态信息,layerIndex参数表示所触发状态所在的层级。在该方法中,animator参数表示触发状态更新事件的动画控制器,stateInfo参数表示所触发状态的当前状态信息,layerIndex参数表示所触发状态所在的层级。
2023-05-31 18:37:05
1230
2
原创 在Unity中如何在动画结束时改变状态
在OnDisable函数中,取消动画状态改变事件的监听函数,并设置游戏对象的状态为动画已经结束。在示例代码中,当动画结束时,将isPlaying状态设为false,将isOver状态设为true,从而改变游戏对象的状态。可以在动画剪辑中添加Animation Events,并在事件中调用脚本中的函数来改变状态。- 在Update方法中检查动画状态是否已经结束,如果已经结束,则执行特定的操作,例如改变游戏对象的状态。2. 使用脚本控制:在脚本中可以监听动画状态的改变事件,从而在动画播放结束后执行特定的操作。
2023-05-31 18:23:26
3288
1
原创 递归算法 一(包含斐波那契非递归算法,全排列问题详解)
具体来说,如果我们定义了一个数组a,可以通过sizeof(a) / sizeof(a[0])来计算a数组的长度,其中sizeof(a)表示整个数组所占的字节数,sizeof(a[0])表示数组中一个元素所占的字节数。在这个新的permutation函数中,程序判断当前排列是否完成,由于起始索引等于结束索引,因此当前排列已完成,程序输出当前排列结果1 2 3 4。在这个新的permutation函数中,程序判断当前排列是否完成,由于起始索引为1,因此当前排列未完成,程序继续执行。以此类推继续往下执行。
2023-05-25 15:25:22
151
1
原创 Unity中攻击判定实装
例如,在平台游戏中,可以使用Polygon Collider 2D来定义平台的形状,使角色能够在平台上行走和跳跃而不会穿过平台。例如,在一个弹球游戏中,可以给弹球添加Polygon Collider 2D和Rigidbody 2D组件,使弹球能够自然地反弹和弹跳。总之,Polygon Collider 2D是一个非常有用的组件,可以帮助开发者在2D游戏中实现更高效、更准确的碰撞检测,带来更好的游戏体验。2D可以使用多边形来定义游戏对象的碰撞区域,这使得它在处理不规则形状的游戏对象时特别有用。
2023-05-22 22:35:41
656
1
原创 Unity创建人物基本动画(基础组件等相关知识和Idle的创建)
①组件Animator。在Unity中,Animator是一个用于控制游戏对象动画的组件。它的主要作用是根据指定的动画状态和过渡条件来控制对象的动画。具体来说,Animator可以实现以下功能:控制对象的动画状态:Animator可以将对象的动画状态分为多个离散的状态,比如走路、跑步、跳跃等,然后根据需要在这些状态之间进行切换。这使得游戏对象的动画看起来更加自然和流畅。实现状态过渡:Animator可以实现状态之间的平滑过渡,使得游戏对象的动画看起来更加连贯。
2023-05-15 13:10:32
4381
1
原创 Unity中人物实现单次跳跃,人物碰撞检测(初步),物理材质的设置
为方便管理在Setting文件夹中新创建一个PhysicMertiral文件夹,点击添加2D 材质更改摩擦力为0,添加到人物身上,人物不在粘在墙上。这一步是为了检测是否在地上,为限制空中跳跃实现单次跳跃做准备。为人物创建新的脚本代码 文件名为PhysicCheck。今天的学习总结完毕,继续加油!
2023-05-10 18:16:14
352
1
原创 Unity中人物组件的添加,输入系统的添加,基础移动脚本的编写
给player添加组件时选择Player Input,跟着默认操作进行。勾选Generate C# Class,点击应用。为player添加组件例子如下,添加重力组件。选择Unity自带的快捷添加输入系统的方法。
2023-05-09 21:49:08
423
1
原创 c语言中的if语句
#include <stdio.h>int main(void){ int n=0; scanf("%d",&n); if(n%4==0&&n%100!=0||n%400==0) printf("Leap Year"); else printf("Not Leap Year"); }如图,这个程序很好的展现了if语句的应用&&表示并且||表示或者且如果条件判断过后的语句只有一条可直接在其后接代码段(不用加花括号)...
2021-12-10 13:15:29
585
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人