自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IO多路复用之poll的简单介绍(基于select)

先从简单的看起,第三个参数timeout是一个int类型的整型,代表毫秒。当传入大于0的数据时,如500,poll会在500ms内阻塞,超过500ms时返回一次。当传入0时,poll非阻塞等待。传入小于0的数据时,poll阻塞式等待。第一个参数fds是一个结构体指针,具体定义如下与select的参数不同,它并不是一个输入输出型参数,而是更接近于一个数组。成员fd表示监视的文件描述符;成员events表示需要系统监听的事件集合;成员revents表示返回的事件集合。事件类型如下表所示:事件描述。

2024-01-03 14:54:34 351 1

原创 IO多路复用之select的简单介绍与使用

select早期需要包含三个头文件,现在只需要包含<sys/select.h>就好了。第一个int类型的参数nfds,代表select要监视的多个fd中的最大的那个fd+1。除了第一个参数其他参数均为输入输出型参数。第五个struct timeval结构体指针类型的参数timeout,先看一下结构体timeval的定义。两个长整形参数,一个代表秒,一个代表毫秒。当传入的参数为空指针null时,说明select为阻塞式调用。当传入的参数为{0 ,0}时,说明select为非阻塞式调用。

2023-12-28 14:51:44 957 1

原创 快速排序的基本思路及实现

从上文中我们可以看出key值的好坏决定了快排的效率,一旦key取得不好,调用堆栈过深,还会有栈溢出的风险。在理想情况下,key值为数组的中位数,数组的长度为N,递归深度为logN,因此时间复杂度为N*logN,而在极端情况下,比如数组是个有序数组,且我们一直取数组的第一个数作为key,这样一来递归的深度为N-1,时间复杂度为N^2。再基于key的位置,将数组分为两部分,key的左边,key的右边,然后重复以上的操作,直到分不了,即分出的部分没有值或只有一个值为止,如图,优化后的快排代码如下,

2023-10-21 23:37:29 147

原创 文件操作:fgetc与fputc函数的使用

函数使用

2022-08-05 23:12:24 1412 1

原创 动态内存管理:malloc、calloc,realloc以及free函数的使用

函数使用

2022-08-01 23:30:03 822

原创 文件的打开和关闭:fopen与fclose函数的使用

如题,函数使用

2022-07-30 22:53:19 1231

空空如也

空空如也

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

TA关注的人

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