自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 空洞文件作用

如果要设置文件的大小为filesize,那么这时就可以调用lseek函数来设置。共享内存的时候有用到.共享内存的机制是两个进程都调用mmap函数。为某个文件迅速地分配固定大小的磁盘空间。

2023-09-23 17:01:40 63 1

原创 实现 **镜子反射** 服务器(

【代码】实现 **镜子反射** 服务器(

2023-09-21 16:39:30 62

原创 strcat、strncat、strcmp、strcpy哪些函数会导致内存溢出?如何改进?

strcpy拷贝函数不安全,他不做任何的检查措施,也不判断拷贝大小,不判断目的地址内存是否够用。,若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。,它与strcpy的区别就是memcpy可以拷贝任意类型的数据,strcpy只能拷贝字符串类型。memcpy 函数用于把资源内存(src所指向的内存区域)拷贝到目标内存(dest所指向的内。strncpy拷贝函数,虽然计算了复制的大小,但是也不安全,strcmp(str1,str2),是比较函数。

2023-09-21 09:07:28 873

原创 网络编程(知识点)

IP协议(Internet Protocol)又称互联网协议,是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能,包括IP数据报规定互连网络范围内的IP地址格式。IP是网络层协议,工作在数据链路层的上面。IP协议的作用就是向传输层(TCP层)提供统一的IP包,即将各种不同类型的MAC帧转换为统一的IP包,并将MAC帧的物理地址变换为全网统一的逻辑地址(IP地址)。这样,这些不同物理网络MAC帧的差异对上层而言就不复存在了。

2023-09-20 20:33:56 60 1

原创 什么是进程什么是线程,他们的区别是什么?

(2)通信不同:进程间可以使用IPC通信,线程之间可以直接读写进程数据段来进行通信;一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。线程是进程的一个实体,是进程的一条执行路径,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程至少包含一个主线程,也可以有更多的子线程,每个线程使用其所属进程的栈空间。进程是系统中正在运行的一个程序,程序一旦运行就是进程。线程属于进程,是程序的执行者。

2023-09-12 10:15:16 162 1

原创 static 知识点

在函数返回类型前加上static关键字,函数即被定义为静态函数。静态函数只能在。

2023-09-12 10:03:07 53 1

原创 #define 和typrdef

但不能在一个函数定义里面使用typedef。用typedef定义数组、指针、结构等类型会带来很大的方便,不仅使程序书写简单,也使意义明确,增强可读性。myptr a,b;//a是int * a, b是 int* b。//a是int * a, b是 int b。,只有在编译已被展开的源程序时才会发现可能的错误并报错。它在自己的作用域内给一个已经存在的类型一个。,在预处理时进行简单而机械的字符串替换,表示p是指针变量,q是int变量。是C语言中定义的语法,补充:int *p,q。

2023-09-06 19:46:06 77 1

原创 const char *p char * const p

2. char * const p中的const先与p结合,即指针地址本身为常量不可以赋值,而它所指向的数据可以赋值。1. const char *p中的*先与p结合,即*p指针指向const类型的数据,所指向的数据是常量不可变得。3. char const *p 与const char *p 等效的。举例: char * const p;举例: char * const p;

2023-09-05 20:38:02 847

原创 函数str系列

注意:该函数会将改变原始字符串 str,使其所包含的所有分隔符变成结束标记 ‘\0’。由于该函数需要更改字符串 str,因此 str 指向的内存必须是可写的。首次调用时 str 指向原始字符串,此后每次调用 str 用 NULL 代替注意:这两个函数的功能,都是将 src 中的字符串,复制拼接到 dest 的末尾。strcat() 没有边界控制,因此可能会由于 src 的过长而导致内存溢出。strncat() 有边界控制,最多复制 n+1 个。

2023-08-14 20:15:11 176

原创 回调函数(钩子函数) 内联函数 递归函数

函数实现方不调用该函数,而由函数接口提供方间接调用的函数,称为回调函数。函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。// say就是回调函数。

2023-08-14 19:48:37 149

原创 函数指针与指针函数数组(非常重要)

函数指针变量,就是用来保存函数地址的变量函数名相当于这个函数的首地址// 函数指针,指向的函数类型为返回值为int 参数为(int,int)的函数intint*

2023-08-04 20:09:52 25 1

原创 用malloc转二维数组

用malloc转二维数组

2023-08-04 19:56:49 92

原创 函数——————

函数名前面为返回值的类型,哪怕此函数没有返回值,也要写上void函数的返回类型要顶格函数返回类型与函数名空一格函数参数要写(),哪怕里面没有任何内容,如果没有内容最好这样写函数调用者调用子函数的时候,可以不接收返回值。

2023-07-23 21:15:27 37

原创 原来这就是—指针—啊

/ 用于存储 int 型数据的地址,p1 被称为 int 型指针,或称整型指针int *p1;// 用于存储 char 型数据的地址,p2 被称为 char 型指针,或称字符指针char *p2;// 用于存储double型数据的地址,p3 被称为 double 型指针double *p3;void一般运用在指针或者,函数的返回值,或者函数的参数传递,不能用在非指针的定义,比如 void a = 10;错误const 型指针const型指针有两种形式:①常指针 ②常目标指针。

2023-07-23 11:29:39 92

原创 不做潜水王,那就冒泡吧

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。每当一个函数被调用时,系统将自动分配一段栈内存给该函数,用于存放其局部变量。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。系统为函数分配栈内存时,遵循从上(高地址)往下(低地址)分配原则。如果第一个比第二个大,就交换他们两个。针对所有的元素重复以上的步骤,除了最后一个。每当一个函数有退出时,系统将自动回收其栈内存。通过栈空间实现冒泡排序。函数接口实现冒泡排序。

2023-07-19 16:10:28 51

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除