![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
幽影火龙骑士
这个作者很懒,什么都没留下…
展开
-
监听tcp连接是否断开
1、简述最近在做东西的时候,用到TCP通信,我的程序为客户端。当时就想要用epoll来监听socket是否发生连接断开的情况。我用epoll注册监听socket的描述符,以及监听EPOLLRDHUP事件,可以成功监听到了对端服务器正常关闭。但是如果直接拔掉网线、或者使用其他方式断网,那么epoll是没有反应,EPOLLRDHUP无法监听到对端socket是否被关闭,此时用recv函数和send()函数的返回值也不能够确定对方是否断开连接。...原创 2020-10-21 15:27:05 · 1277 阅读 · 0 评论 -
centos7升级GLIBC版本
之前在一个Centos7虚拟机上运行目标程序的时候,发现自己的编译环境比目标运行机的centos7系统的glibc版本要高,运行的时候报错,说找不到GLIBC_2.18。于是在该centos7运行 strings libc.so.6 |grep GLIBC_2.1 命令,发现最GLIBC的最高版本是2.17( Ĭ ^ Ĭ )。这样的话要么降低编译环境的GLIBC版本,要么给目标机的GLIBC升级版本。我想如果每次目标机版本低,就给自己的编译环境降低版本的话,那不是个事啊。于是想办法给目标机升级GLIBC版原创 2020-10-20 10:51:00 · 2742 阅读 · 1 评论 -
C/C++ memset函数与类对象的使用安全
memset函数的使用安全最近写代码的使用,有一个场景如下:我定义了一个结构体,比如struct abc{ int a; std::string b;}然后我使用struct abc的时候,做了如下操作:struct abc test;memset(&test,0x00,sizeof(struct abc));stra.b="sdfasdfa";这段代码在编译的过程中是没有问题的,但是会在执行过程中报段错误。个人认为原因是包含在struct abc中的元素std::str原创 2020-09-28 11:50:56 · 454 阅读 · 0 评论 -
Linux系统编程:inotify监听文件事件
简介Linux在2.6.13之后的版本中,加入了一个特性:inotify。我们可以使用inotify可以监听某个文件触发的事件,如文件被访问、文件被修改等等。inotify的相关接口在头文件<sys/inotify.h>当中。Inotify接口函数/* Create and initialize inotify instance. */extern int inotify_init (void) __THROW;/* Create and initialize inoti.原创 2020-09-12 10:21:30 · 460 阅读 · 0 评论