- 博客(15)
- 收藏
- 关注
原创 linux信号机制
在 Linux 的世界里,进程就像生活在城市中的人,它们需要相互沟通来协调行动。而信号机制呢,就像是一种神奇的 “信号弹”,用于进程之间的交流。当一个进程有重要消息要传达给另一个进程时,就会发射出这样的 “信号弹”。这就是 Linux 信号机制,它是管理进程间通信的一把 “金钥匙”,让我们一起深入了解它是如何发挥作用的吧。一、概述Linux 的信号机制作为进程间通信的重要方式,发挥着关键作用。它本质上是一种软件中断,能够异步地通知进程发生了特定事件。信号的全称为软中断信号,简称软中断,在头文件<s
2024-12-12 09:40:35
494
原创 linux进程通信
通过一副图讲解进程间通信的原理,进程之间虽然有空间隔离,但都和内核连着,可以通过特殊的系统调用和内核沟通,从而达到和其它进程通信的目的。但是也不是完全没有办法,好在它们都和内核是连着的,虽然它们不能随意访问内核,但是还有系统调用这个大门,进程之间可以通过一些特殊的系统调用和内核沟通从而达到和其它进程通信的目的。那是因为内核空间是共享的,虽然N个进程都有N个用户空间,但是内核空间只有一个,虽然用户空间之间是完全隔离的,但是用户空间与内核空间并不是完全隔离的,他们之间有系统调用这个通道可以沟通。
2024-12-11 15:34:54
517
原创 getsockname函数
使用这两个函数,我们可以通过套接字描述符来获取自己的IP地址和连接对端的IP地址,如在未调用bind函数的TCP客户端程序上,可以通过调用getsockname()函数获取由内核赋予该连接的本地IP地址和本地端口号,还可以在TCP的服务器端accept成功后,通过getpeername()函数来获取当前连接的客户端的IP地址和端口号。这两个函数支持IPv4和IPv6,所以需要通过参数family来指定,当前要转换的是IPv4地址还是IPv6地址。
2024-06-18 18:19:57
425
原创 getaddrinfo函数
域名和IP地址之间转换的两个函数:gethostbyname和gethostbyaddr,但是这两个函数仅仅支持IPv4。本文再介绍一个可支持 IPv4 和 IPv6 的函数getaddrinfo,该函数可以处理名字到地址以及服务到端口这两种转换。
2024-06-18 16:35:03
213
原创 Linux clock_gettime()
CLOCK_MONOTONIC_COARSE: 系统运行时间,从系统启动时开始计时,速度更快精度更低,系统休眠时不再计时(NTP与硬件时钟有问题时会影响其频率,没有验证过)。CLOCK_MONOTONIC_RAW : 系统运行时间,从系统启动时开始计时,系统休眠时不再计时(NTP与硬件时钟有问题时不会影响其频率,没有验证过)。CLOCK_REALTIME_ALARM : 闹钟时间(应该休眠后继续计时,没验证过),系统实时时间,从Epoch计时,可被设置更改。
2024-06-18 10:28:40
775
原创 epoll用法
最后一个timeout是 epoll_wait的超时,为0的时候表示马上返回,为-1的时候表示一直等下去,直到有事件范围,为任意正整数的时候表示等这么长的时间,如果一直没有事件,则范围。当一个新的事件到来时,ET模式下当然可以从 epoll_wait调用中获取到这个事件,可是如果这次没有把这个事件对应的套接字缓冲区处理完,在这个套接字没有新的事件再次到来时,在 ET模式下是无法再次从 epoll_wait调用中获取这个事件的;在linux新的内核中,有了一种替换它的机制,就是epoll。
2024-06-18 10:23:04
685
原创 Collecting package metadata (current_repodata.json)解决方法
Collecting package metadata (repodata.json)
2022-11-03 15:49:38
2217
原创 解决NoWritableEnvsDirError: No writeable envs directories configured问题
sudo chmod a+w .conda
2022-10-24 04:53:21
2767
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人