自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VMWare workstation 安装 CentOS 8后自适应调整分辨率(如1920x1080)

在 VMWare workstation安装CentOS 8后,不能自适应调整分辨率,需要手动安装driver:sudo yum install xorg-x11-drv-vmware安装完后,重启VM,这样就可以支持自适应调整分辨率了,比如常用的(1920x1080)分辨率。...

2019-12-03 11:10:35 2333 1

原创 libevent学习笔记 ---- 回显服务器 (3)

在libevent库中提供了evconnlistener系列函数接口,让我们更容易的去监听和建立TCP链接。下面就是使用evconnlistener来构建 的一个高级点的回显服务器。老规矩,废话少说,直接上代码。至于客户端代码可以参考第一篇。#include #include #include #include #include #include #include #includ

2016-08-16 15:33:31 297

原创 libevent学习笔记 ---- 回显服务器 (2)

上一篇写了简单使用libevent的例子,本篇写一个高级一点的回显服务器程序,使用libevent提供的高级利器bufferevent,客户端程序请参考上篇文章。#include #include #include #include #include #include #include #include #include #include #include #d

2016-08-16 14:52:27 317

原创 libevent学习笔记 ---- 回显服务器 (1)

最近在学习libevent,顺便写了几个例子。按照Unix网络编程里的经典例子,从echo server开始。所谓echo server(回显服务器), 就是服务器将客户端发送过来的信息原封不动的发送回给客户端。以下是结合libevent的初级回显服务器代码:#include #include #include #include #include #include #inclu

2016-08-16 11:21:55 376

原创 Linux线程同步-----条件变量

线程间的同步还有一个情况:进程A 需要等待一个条件成立,才执行,当条件不成立时就阻塞等待 ;进程B 需要设置条件,当条件成立时,唤醒进程A.这里我们就可以用到条件变量。条件变量变量也是出自POSIX线程标准,另一种线程同步机制,主要用来等待某个条件的发生,然后进行相应的操作,这样可以消除多线程间的竞争。每个条件变量总是和一个互斥量相关联,条件本身是由互斥量保护的,线程在改变条件状态之间必须

2016-07-29 14:35:31 608

原创 Linux线程同步-----读写锁

读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步.和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入临界区的线程和请求进入临界区的线程的属性来判断是否允许线程进入。相对互斥量只有加锁和不加锁两种

2016-07-22 15:58:13 380

原创 Linux线程同步-----互斥量(Mutex)

互斥量与信号处理函数一样,线程在访问全局资源时也会遇到非原子操作导致的冲突(可重入问题). 比如两个线程要对同一个寄存器加1, 并行访问时可能会导致只加了一次.不可重入操作的特点时,输出不仅依赖于输入,还依赖于状态, 比如加1 依赖于状态,这个状态是寄存器原值. 访问状态和修改状态不是原子操作的话,就会导致并发冲突。生成锁Mutex用pthread_mutex_t类

2016-07-22 09:28:31 9294

原创 Linux下获取调用堆栈地址

#include #include #include void get_stack_info(char *buf, int len){#define MAX_BACK_TRACE_DEPTH 100#define MAX_STACK_SIZE 64 if (buf == NULL || len <= 0) { return; }

2016-06-14 10:19:47 1462

原创 Linux下通过shell批量替换文件内容

grep "OldString" -rl /path | xargs sed -i "s/OldString/NewString/g" 例子: 1.将“abc”替换为“ABC” grep "abc" -rl /path | xargs sed -i "s/abc/ABC/g"  2.将“abc d"替换为 "ABC D" grep "abc d" -rl /path

2016-04-27 13:31:32 2076

原创 Liunx下用代码设置ip地址

之前写过一个ifconfig版本的IP地址设置,但是不能设置保留的E类地址。最近看了下iproute的源码,移植了一下,现在E类IP地址也可以配了。#include #include #include #include #include #include #include #include #include #include #include #include

2016-01-22 15:28:09 612

原创 Linux下ifconfig的简易实现

最近看了一下net-tools的源码,然后简易实现了ifconfig命令。    目前可以支持修改IP,MAC地址,netmask 以及gateway。#include #include #include #include #include #include #include #include #include #include #include #inclu

2016-01-19 21:54:20 1688

原创 C语言去除字符串首尾空格,trim()函数实现

C语言中目前没有现成的trim函数,自己实现了一个。#include #include #include #include //去除尾部空格char *rtrim(char *str){ if (str == NULL || *str == '\0') { return str; } int len = strlen(str); char *p = str + l

2016-01-15 08:47:13 24215 2

原创 Linux下删除virtual vlan interface

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAX_BUF_SIZE 409

2016-01-14 10:53:13 2465

原创 判断IP、MAC地址是否符合规范

#include #include #include #include #include int is_valid_ip(const char *ip){    if (ip == NULL || strlen(ip)     {        return -1;    }    int len = strlen(ip);    const

2016-01-14 08:57:12 4923

空空如也

空空如也

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

TA关注的人

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