![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 72
袁三丰
数字化转型问题解决者
5年编程经历,就职于华为
5年产品经理,致力于利用最新信息技术帮助传统企业实现数字化转型
展开
-
Redis 进程设置成守护进程
dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status Flag和读写位置。请注意区原创 2014-06-11 16:26:49 · 7236 阅读 · 0 评论 -
I/O多路复用详解(三)
I/O多路复用详解(三) 4、epoll 在linux的网络编程中,很长的一段时间都在使用select来做事件触发。然而select逐渐暴露出了一些缺陷,使得linux不得不在新的内核中寻找出替代方案,那就是epoll。其实,epoll与select原理类似,只不过,epoll作出了一些重大改进,即: a、当它们所监听的集合中有状态发生改变时,select需要循环检查整转载 2014-12-10 16:50:32 · 516 阅读 · 0 评论 -
linux epoll模型
linux epoll模型 Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个转载 2014-12-10 16:55:30 · 479 阅读 · 0 评论 -
I/O多路复用详解(二)
I/O多路复用详解(二) 2、pselect函数 pselect函数是由POSIX发明的,如今许多Unix变种都支持它。 #include #include #include int pselect(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, co转载 2014-12-10 16:45:29 · 426 阅读 · 0 评论 -
I/O多路复用详解(一)
I/O多路复用详解(一) 一、五种I/O模型1、阻塞I/O模型 最流行的I/O模型是阻塞I/O模型,缺省情形下,所有套接口都是阻塞的。我们以数据报套接口为例来讲解此模型(我们使用UDP而不是TCP作为例子的原因在于就UDP而言,数据准备好读取的概念比较简单:要么整个数据报已经收到,要么还没有。然而对于TCP来说,诸如套接口低潮标记等额外变量开始活动,导致这个概念变得复转载 2014-12-10 16:38:46 · 676 阅读 · 0 评论 -
Select在Socket编程中的使用方法
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所转载 2014-12-10 09:45:44 · 550 阅读 · 0 评论 -
EINTR返回值到处理
在《UNIX Networking programming》Chapte5中论述了“slow system call"的概念, 而且给出了EINTR的处理方法。慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保转载 2014-12-24 17:54:47 · 1663 阅读 · 0 评论 -
SIGPIPE信号处理
在unix下写socket程序,会遇到连接建立,若某一端关闭连接,而另一端仍然向它写数据,第一次写数据后会收到RST响应,此后再写数据,内核将向进程发出SIGPIPE信号,通知进程此连接已经断开。而SIGPIPE信号的默认处理是终止程序,导致上述问题的发生。 为避免这种情况,可以选择忽略SIGPIPE信号,不执行任何动作。#include //SIGPIPE ignores转载 2014-12-25 11:18:30 · 530 阅读 · 0 评论 -
Linux 自旋锁
1.什么是自旋锁自旋锁顾名思义首先是一把锁,另外使用这把锁的线程需要反复自我循环(loop)检测这把锁是否可用。注意与信号量区别,信号量也是一把锁,但是使用这把锁的线程检测锁不可用时,选择去睡眠,而不是自我循环。自旋锁与信号量相同点是两者都是锁,都具备锁定特性,实现临界区代码块的同步与互斥访问。2.自旋锁实现(摘自http://en.wikipedia.org/wiki/Spi转载 2014-12-01 15:01:18 · 641 阅读 · 0 评论 -
shell判断文件,目录是否存在或者具有权限
shell判断文件,目录是否存在或者具有权限#!/bin/shNovaPath=”/var/log/httpd/”NovaFile=”/var /log/httpd/access.log”#这里的-x 参数判断$NovaPath是否存在并且是否具有可执行权限if [ ! -x "$NovaPath"]; thenmkdir “$NovaPath”fi#这转载 2014-09-29 18:15:59 · 502 阅读 · 0 评论 -
Linux学习笔记——如何在交叉编译时使用共享库
zhuanzi0.前言 在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件)。在这种情况下便会产生以下疑问,例如: 【1】交叉编译时的共享库是否需要放置于目标板中,如果需要放置在哪个目录中。 【2】交叉编译时的共享库是否需要放置于宿主机中,如果需要放置于哪个目录中。 【3】交叉编译时如何指定共享库转载 2014-09-18 13:49:08 · 1026 阅读 · 0 评论 -
pkg-config的用法
pkg-config的用法pkg-configpkg-config程序是干什么用的?简单的说就是向用户向程序提供相应库的路径、版本号等信息的程序。譬如说我们运行以下命令:pkg-config 查看gcc的CFLAGS参数$pkg-config --libs --cflags opencv会显示如下信息:-I/usr/include/opencv -lcxcore转载 2014-09-17 11:21:35 · 420 阅读 · 0 评论 -
linux下C++动态链接C++库示例详解
出处: http://blog.chinaunix.net/uid-26000296-id-3778641.html注意其中使用函数返回基类指针的用法,因为Linux的动态链接库不能像MFC中那样直接导出类一、介绍如何使用dlopen API动态地加载C++函数和类,是Unix C++程序员经常碰到的问题。事实上,情况偶尔有些复杂,需要一些解释。这正是写这篇mini转载 2014-09-14 16:59:34 · 579 阅读 · 0 评论 -
linux下制作共享库.a .so
作者:武汉华嵌嵌入式培训中心 讲师 李家凯Linux下静态库和动态库(共享库)的制作与使用Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目转载 2014-09-14 14:29:27 · 437 阅读 · 0 评论 -
一个modbus协议库移植——libmodbus-master
modbus协议是工业上常用的数据传输协议,在linux上一原创 2014-09-18 16:35:22 · 15614 阅读 · 3 评论 -
Linux 修改文件用户属性
Linux 修改文件用户属性chgrp命令功能:改变文件或目录所属的组。语法:chgrp [选项] group filename?该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。该命令的各选项含义转载 2014-09-18 13:55:39 · 943 阅读 · 0 评论 -
Redis 安装
1、软件环境Redis版本 :redis-2.8.7原创 2014-06-17 13:15:30 · 517 阅读 · 0 评论 -
Linux信号(signal) 机制分析
Linux信号(signal) 机制分析【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。【关键字】软中断信号,sig转载 2014-06-18 14:12:02 · 548 阅读 · 0 评论 -
linux网络服务器模型
linux网络服务器模型 Linux系统网络服务器模型主要有两种:并发服务器和循环服务器。所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻指可以响应一个客户端的请求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特点。 1、TCP循环服务器 首先TCP服务器接受一个客户端的连接请求,处理连接请求,在完成这个客户端的转载 2014-12-10 16:34:20 · 459 阅读 · 0 评论