System - Linux
文章平均质量分 86
神奕
这个作者很懒,什么都没留下…
展开
-
Fedora下搭建LAMP开发环境
LAMP是Linux + Apache原创 2014-05-07 14:41:04 · 3470 阅读 · 0 评论 -
CentOS 6.5 BCM43142 80211无线网卡驱动安装
没事折腾了一下双系统,在Windows7之外又装了个CentOS 6.5,装完之后发现没有无线网卡驱动,不能连WIFI。于是装驱动又折腾了好几个小时。。。这里记录一下1、查看本机的驱动信息使用iwconfig发现本机没有无线网卡驱动:[root@songlee-PC ~]# iwconfig lo no wireless extensions.eth0 no wireles原创 2017-07-09 13:30:32 · 7261 阅读 · 3 评论 -
IO多路复用:select、poll、epoll示例
一、IO多路复用所谓IO多路复用,就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。Linux支持IO多路复用的系统调用有select、poll、epoll,这些调用都是内核级别的。但select、poll、epoll本质上都是同步I/O,先是block住等待就绪的socket,再是block住将数据从内核拷贝到用户内存。当然原创 2016-05-06 03:35:10 · 5926 阅读 · 1 评论 -
IO模型:同步、异步、阻塞、非阻塞
前言: 在Linux的网络编程中,同步IO(synchronous IO)、异步IO(asynchronous IO)、阻塞IO(blocking IO)、非阻塞IO(non-blocking IO)究竟是什么?它们之间又有什么联系和区别? 本文是我对这个问题的答案整理的笔记,参考《UNIX网络编程.卷1》一、IO模型在《UNIX网络编程.卷1》第6.2节介绍了五种IO模型,分别是原创 2016-07-18 19:18:10 · 1740 阅读 · 0 评论 -
TCP socket心跳包示例程序
在做游戏开发时,经常需要在应用层实现自己的心跳机制,即定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性。在TCP socket心跳机制中,心跳包可以由服务器发送给客户端,也可以由客户端发送给服务器,不过比较起来,前者开销可能更大。—— 这里实现的是由客户端给服务器发送心跳包,基本思路是:1) 服务器为每个客户端保存了IP和计数器count,即map<fd, pair<i原创 2016-05-06 03:11:35 · 36937 阅读 · 8 评论 -
常用linux系统监控命令
一、内存监控监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,监控内存最常使用的命令有free、vmstat、top等1. free$ free结果如下:第一行(Mem):total:内存总数 486284 KBused:已使用的内存数 294528 KBfree:空闲的内存数 191756 KBshared:多个进程共享的内存,总是0原创 2015-08-23 23:36:11 · 4210 阅读 · 0 评论 -
字节序:Big Endian 和 Little Endian
一、字节序字节序,也就是字节的顺序,指的是多字节的数据在内存中的存放顺序。在几乎所有的机器上,多字节对象都被存储为连续的字节序列。例如:如果C/C++中的一个int型变量 a 的起始地址是&a = 0x100,那么 a 的四个字节将被存储在存储器的0x100, 0x101, 0x102, 0x103位置。根据整数 a 在连续的 4 byte 内存中的存储顺序,字节序被分为大端序(Big Endia原创 2015-05-01 21:11:09 · 4950 阅读 · 0 评论 -
【Linux多线程】三个经典同步问题
在了解了《同步与互斥的区别 》之后,我们来看看几个经典的线程同步的例子。相信通过具体场景可以让我们学会分析和解决这类线程同步的问题,以便以后应用在实际的项目中。一、生产者-消费者问题问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小为 n 的缓冲区,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,原创 2015-04-30 21:17:00 · 7118 阅读 · 0 评论 -
【Linux多线程】同步与互斥的区别
很多人把同步与互斥这两个概念混淆,这里说一下它们的区别。一、同步与互斥的区别1. 同步同步,又称直接制约关系,是指多个线程(或进程)为了合作完成任务,必须严格按照规定的 某种先后次序来运行。例如,线程 T2 中的语句 y 要使用线程 T1 中的语句 x 的运行结果,所以只有当语句 x 执行完成之后语句 y 才可以执行。我们可以使用信号量进行同步:semaphore S=0; // 初始化信号量T原创 2015-04-29 23:11:45 · 12414 阅读 · 1 评论 -
【Unix编程】进程间通信(IPC)
Linux进程间通信(IPC)进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1原创 2015-04-21 20:42:47 · 4008 阅读 · 1 评论 -
【Unix编程】C/C++获取目录下文件或目录
在Unix/Linux系统中,要获取一个指定目录下所有的文件或文件夹,一般用dirent.h(POSIX标准定义的目录操作头文件)。一、数据类型在头文件中定义了两种主要的数据类型。DIR:代表一个目录流的结构。struct dirent:包含一个文件或目录信息的结构体。有些情况下,我们只要输出文件而不需要文件夹(目录),这时可以通过dirent结构体中的d_type进行过滤。d原创 2014-09-20 17:12:51 · 4373 阅读 · 1 评论 -
PHP问题定位:strace php-fpm进程
命令:strace -f $(pidof php-fpm | sed 's/\([0-9]*\)/\-p \1/g')原创 2019-08-20 17:40:15 · 1397 阅读 · 0 评论