Linux
文章平均质量分 71
夏凌风
这个作者很懒,什么都没留下…
展开
-
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 · 2397 阅读 · 1 评论 -
Linux线程同步-----互斥量(Mutex)
互斥量与信号处理函数一样,线程在访问全局资源时也会遇到非原子操作导致的冲突(可重入问题). 比如两个线程要对同一个寄存器加1, 并行访问时可能会导致只加了一次.不可重入操作的特点时,输出不仅依赖于输入,还依赖于状态, 比如加1 依赖于状态,这个状态是寄存器原值. 访问状态和修改状态不是原子操作的话,就会导致并发冲突。生成锁Mutex用pthread_mutex_t类原创 2016-07-22 09:28:31 · 9327 阅读 · 0 评论 -
libevent学习笔记 ---- 回显服务器 (3)
在libevent库中提供了evconnlistener系列函数接口,让我们更容易的去监听和建立TCP链接。下面就是使用evconnlistener来构建 的一个高级点的回显服务器。老规矩,废话少说,直接上代码。至于客户端代码可以参考第一篇。#include #include #include #include #include #include #include #includ原创 2016-08-16 15:33:31 · 315 阅读 · 0 评论 -
libevent学习笔记 ---- 回显服务器 (2)
上一篇写了简单使用libevent的例子,本篇写一个高级一点的回显服务器程序,使用libevent提供的高级利器bufferevent,客户端程序请参考上篇文章。#include #include #include #include #include #include #include #include #include #include #include #d原创 2016-08-16 14:52:27 · 340 阅读 · 0 评论 -
libevent学习笔记 ---- 回显服务器 (1)
最近在学习libevent,顺便写了几个例子。按照Unix网络编程里的经典例子,从echo server开始。所谓echo server(回显服务器), 就是服务器将客户端发送过来的信息原封不动的发送回给客户端。以下是结合libevent的初级回显服务器代码:#include #include #include #include #include #include #inclu原创 2016-08-16 11:21:55 · 391 阅读 · 0 评论 -
Linux线程同步-----条件变量
线程间的同步还有一个情况:进程A 需要等待一个条件成立,才执行,当条件不成立时就阻塞等待 ;进程B 需要设置条件,当条件成立时,唤醒进程A.这里我们就可以用到条件变量。条件变量变量也是出自POSIX线程标准,另一种线程同步机制,主要用来等待某个条件的发生,然后进行相应的操作,这样可以消除多线程间的竞争。每个条件变量总是和一个互斥量相关联,条件本身是由互斥量保护的,线程在改变条件状态之间必须原创 2016-07-29 14:35:31 · 627 阅读 · 0 评论 -
Linux线程同步-----读写锁
读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步.和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入临界区的线程和请求进入临界区的线程的属性来判断是否允许线程进入。相对互斥量只有加锁和不加锁两种原创 2016-07-22 15:58:13 · 392 阅读 · 0 评论 -
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 · 1500 阅读 · 0 评论 -
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 · 2115 阅读 · 0 评论 -
判断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 · 5057 阅读 · 0 评论 -
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 · 2507 阅读 · 0 评论 -
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 · 634 阅读 · 0 评论 -
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 · 1739 阅读 · 0 评论