自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cgo调用

cgo调用是go语言提供的一种机制,它允许go程序调用C语言的函数和使用C语言的库。在cgo调用中,go程序可以通过import "C"语句来引入c语言的头文件和函数,并且可以使用c语言的数据类型和指针类型。但在使用时需要注意安全性和可移植性,可能会涉及到内存管理和平台相关性的问题。

2024-06-10 14:08:14 806

原创 linux下的IO模型

目前Linux下可用的IO模型有5种,分别为阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO,其中较为成熟且高效、稳定的是IO多路复用模型,因此当前众多网络服务程序几乎都是采用这种IO操作策略。当一个应用程序读写(以读为例)某端口数据时,选择不同IO模型的应用程序,其执行流程也将不同。本文仅对几种IO模型进行简单介,希望对大家有所帮助。

2024-05-26 16:05:30 802

原创 计算机的字节序

字节序(Byte Order)指的是在计算机中,多字节数据(比如整数、浮点数等)在内存中存储的顺序。在计算机中,多字节数据通常会被分割成若干个字节,然后按照一定的顺序存储在内存中。计算机字节序是指计算机中的数据是如何组织的,包括整数、浮点数、字符、指针等。在大多数计算机中,字节序是指用8位字节来表示数据的顺序,也就是大小端序。不同的计算机体系结构和编译器可能会有不同的字节序实现方式,但通常都遵循着这种基本的存储顺序。

2024-03-05 11:36:10 378 1

原创 【linux】epoll中的ET和LT

epoll是Linux下的一个多路复用API,当处理大并发的事件时,其性能远强于古老的poll和select。epoll可以工作在两种模式下,LT(水平触发)、ET(边缘触发),接下来将讨论这两种模式的区别。epoll 新增了一个事件宏 EPOLLET,表示边缘触发模式(Edge Trigger,ET),默认的模式是水平触发模式(Level Trigger,LT)。对于水平触发模式,一个事件只要有,就会一直触发。对于边缘触发模式,只有一个事件从无到有才会触发。

2024-01-26 17:36:11 475 1

原创 C语言socket编程-epoll

epoll是Linux内核的可扩展I/O事件通知机制。于Linux 2.5.44首度登场,它设计目的旨在取代既有POSIX select与poll系统函数,让需要大量操作文件描述符的程序得以发挥更优异的性能。相比select/poll的主动查询,epoll模型采用基于事件的通知方式,事先为建立连接的句柄注册事件,一旦该句柄就绪,内核会采用回调机制将句柄加入到epoll的指定的句柄集合中,之后进程再根据该集合中句柄的数量,对客户端请求逐一进行处理。

2024-01-25 21:46:13 1821 1

原创 linux中文件描述符阻塞与非阻塞有什么区别

区别在于阻塞模式下,读写操作会一直等待,直到数据到达或操作超时,而非阻塞模式下,读写操作会立即返回,进程可以继续执行其他操作。阻塞模式下,进程的响应速度较慢,而非阻塞模式下,进程的响应速度较快,但需要不断地轮询文件描述符,以判断是否有数据可读或可写。文件描述符非阻塞是指进程在读写文件或网络连接时,如果没有数据可读或可写,进程会立即返回,而不是一直等待。文件描述符阻塞是指进程在读写文件或网络连接时,如果没有数据可读或可写,进程会一直等待,直到有数据可读或可写。

2024-01-05 11:32:50 526 1

原创 C语言socket编程-select

在早期的Unix系统中,每个进程都有一个单独的I/O流,这种方式效率低下,因为每个I/O操作都需要等待数据的到来。为了提高效率,Unix引入了select函数,它可以同时监听多个文件描述符,随着网络通信的发展,select函数也被广泛应用于网络编程中,它可以同时监听多个网络连接,当其中任意一个连接有数据到来时,就可以进行相应的处理,从而实现高效的网络通信。

2023-12-22 10:33:31 1279

原创 C语言socket编程

为了更方便地开发网络应用程序,美国伯克利大学在UNIX上推出了一种应用程序访问通信协议的操作系统调用接字(Socket)。Socket的出现,使得程序员可以很方便地访问 TCP/IP,从而开发各种网络应用程序。后来套接字被引进到 Windows等操作系统,成为开发网络应用程序的有效工具。socket(套接字)是一种通信机制,它是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。

2023-11-18 19:36:13 171 1

原创 VSCode配置快速生成注释功能

在计算机语言中,注释是计算机语言的一个重要组成部分,用于在源代码中解释代码的功用,可以增强程序的可读性,可维护性,或者用于在源代码中处理不需运行的代码段,来调试程序的功能执行。

2023-11-10 16:05:30 3645 1

原创 GDB快速入门

GDB是GNU调试器(GNU Debugger)的缩写,是一种功能强大的调试工具,可以用于调试多种编程语言的程序,如C、C++、汇编等。GDB可以帮助程序员在程序运行时进行调试,包括查看变量的值、跟踪程序执行流程、设置断点等。GDB支持多种操作系统,包括Linux、Unix、Windows等。本文仅仅简单介绍了GDB的使用,GDB再调试程序中有非常重要的作用,掌握这个工具可以在开发调试中起到事半功倍的效果。

2023-09-28 11:27:19 873

空空如也

空空如也

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

TA关注的人

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