
linux API编程
文章平均质量分 53
SprintfWater
My English name is SpringWater
展开
-
linux Shell编程入门
转载:http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用Shell脚本编程,完成更加复杂的操作。在LinuxGUI日益完善的今天,在系统管理等领域,Shell编转载 2012-11-27 21:52:51 · 850 阅读 · 0 评论 -
保留地址的分配
根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。一个机构网络要连入Internet,必须申请公用IP地址。但是考虑到网络安全和内部实验等特殊情况,在IP地址中专门保留了三个区域作为私有地址,其地址范围如下:转载 2013-02-27 14:08:52 · 1251 阅读 · 0 评论 -
linux下ioctl函数学习
一、 什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控转载 2013-04-29 19:01:36 · 973 阅读 · 0 评论 -
fcntl的用法
功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcntl()针对(文件)描述符提供控制。参数fd转载 2013-07-02 19:34:57 · 964 阅读 · 0 评论 -
linux下用select实现非阻塞socket
本文并非解释什么是非阻塞socket,也不是介绍socket API的用法, 取而代替的是让你感受实际工作中的代码编写。虽然很简陋,但你可以通过man手册与其它资源非富你的代码。请注意本教程所说的主题,如果细说,内容可以达到一本书内容,你会发现本教程很有用。 本教程内容如下: 1. 改变一个阻塞的socket为非阻塞模式。转载 2013-07-03 15:34:49 · 9128 阅读 · 1 评论 -
Google glog
本文是根据自己的理解翻译组织了glog的manual,鉴于自身的理解能力和英语水平,可能存在谬误,欢迎大家指出!英文原文见http://google-glog.googlecode.com/svn/trunk/doc/glog.html1. 概述 Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例:转载 2013-07-21 20:45:14 · 1351 阅读 · 0 评论 -
进程间通信
1.管道管道是UNIX系统IPC的最古老形式,在shell下的表现形式为管道线。每当在管道线中输入一个由shell执行的命令序列时,shell为每一条命令单独创建一进程,然后将前一条命令进程的标准输出用管道与后一条命令的标准输入相连接。管道有两个主要局限:1).管道是半双工的,即数据只能在一个方向上流动。2).管道只能在具有公共祖先的进程之间使用。管道是由调用pipe函数而转载 2013-09-30 22:24:59 · 1153 阅读 · 0 评论 -
进程/线程 同步机制
1 什么时候需要同步?2 在linux中, 线程同步机制有哪些?各适用在怎样的条件?进程同步有哪些?对应的数据类型、API 各有哪些?在当前的POSIX标准中有三种线程同步机制,它们分别是:互斥量、读写锁、条件变量。关于进程同步机制,POSIX定义了一种信号灯,而system V 定义了另外一种信号灯。------------------------------------转载 2013-09-30 22:14:39 · 1441 阅读 · 0 评论 -
Linux内核中的互斥与同步机制
共有这么几大类1.自旋锁2.信号量3.互斥锁4.RCU5.原子变量6.完成量文章列举了各个互斥机制所要用的api以及在什么情况下用哪种互斥,并未对内核中的互斥和同步机制详细分析,只供今后写代码时查阅,如果想了解详细机制可参考LKD或>等书.自旋锁 spin_lock/spin_unlock 因为只禁止抢占,并未对中断做处理,所以不转载 2013-09-30 22:18:09 · 2813 阅读 · 0 评论 -
zip, tar, tar.gz, tar.bz2, jar,7z等格式文件的压缩和解压方法
在飞哥的指导下,学了zip, tar, tar.gz, tar.bz2, jar, 7z等格式文件的压缩和解压方法原创 2013-10-02 22:01:48 · 6616 阅读 · 1 评论 -
hiredis示例代码example-ac.c的编译出现缺少ae的解决方法总结
方法一:直接利用redis的src文件夹下面的文件生成静态库,在编译的时候,将静态库用"-llibredis.a"的方式链接接进去具体实现可借鉴链接:http://blog.youkuaiyun.com/vah101/article/details/14057287 在hiredis目录下,有几段示例代码,其中example-ae是最诡异的,直接用gcc编译报了很多错,提示大部分ae函数找原创 2014-03-11 19:13:01 · 3127 阅读 · 0 评论 -
从分布式系统角度的回答阻塞非阻塞与同步异步的区别
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调转载 2014-03-10 09:54:24 · 2960 阅读 · 0 评论 -
手工释放linux内存——/proc/sys/vm/drop_caches
总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有转载 2014-03-16 17:47:05 · 868 阅读 · 0 评论 -
多维数组指针值
代码: int p[10][10]; int **q = p; printf("%0x\n%0x\n", &q, q); printf("----------------------------------------\n"); printf("%0x\n%0x\n%0x\n%0x\n%0x\n", &p, p, &p[0], p[0], &p[0][0]); printf("---原创 2015-01-15 21:32:14 · 776 阅读 · 0 评论 -
linux rename 函数
下面是引用:http://baike.baidu.com/item/rename#1在unix或linux系统中:相当于mv命令#include int rename(const char *oldname, const char *newname);函数说明(1) 如果oldname为一个文件而不是目录,那么为该文件更名。在这种情况下,如果newname作原创 2015-04-28 15:36:11 · 20577 阅读 · 0 评论 -
Linux系统环境下关于多进程并发写同一个文件的讨论
转载链接:http://blog.chinaunix.net/uid-11452714-id-3771084.html讨论关于并发环境下,多个进程对同一文件写入的问题,我们会涉及到文件共享的知识。在开始之前,我们先讨论一些有关文件共享的知识。1. 文件共享 Unix系统支持在不同进程间共享打开的文件。为此,我们先介绍一下内核用于所有I/O的数据结构。注意,下面的说明是概念转载 2015-04-28 15:41:43 · 1941 阅读 · 0 评论 -
linux中计时函数
1. gettimeofday 精确到微秒级别 计时函数 int gettimeofday(structtimeval *tv,struct timezone *tz);说明:gettimeofday将时间保存在结构tv之中,strut timeval gives the number of seconds and microsecondssince the Epoch,(00:00:转载 2013-02-27 12:53:51 · 1517 阅读 · 1 评论 -
linux下编程实现将域名地址转换为IP地址
struct hostent结构体这个数据结构是这样的: struct hostent { const char *h_name; // official name of host char **h_aliases; // alias list short h_addrtype; // host address t转载 2013-03-07 12:27:46 · 6187 阅读 · 0 评论 -
Linux根目录下各个文件夹的作用
转自:http://www.cnblogs.com/amboyna/archive/2008/02/16/1070474.html linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/hom转载 2012-11-19 17:10:49 · 1451 阅读 · 0 评论 -
linux文件系统介绍
文件目录管理命令磁盘和文件空间 fdisk df du文件目录与管理 cd pwd mkdir rmdir ls cp rm mv 查看文件内容 cat:cat [file]查看文件的内容。全程式concatenate的意思,将文件内容连续输出到屏幕上。第一行到最后一行显示。tac:tac [file]和cat刚好相反 是从最后一行到第一行的方式查看。转载 2012-11-19 16:14:07 · 473 阅读 · 0 评论 -
Raw Socket和Socket编程
1.原始套接字(raw socket) 1.1 原始套接字工作原理与规则 原始套接字是一个特殊的套接字类型,它的创建方式跟TCP/UDP创建方法几乎是一摸一样,例如,通过CODE:[Copy to clipboard] int sockfd; sockfd = socktet(AF_INET, SOCK_转载 2012-12-04 20:33:32 · 781 阅读 · 0 评论 -
linux操作系统下的glibc库介绍
GLIBC 的内容 由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个作业系统。以 glibc-2.2 为例,这些档案群主要包括: 1.分享函式库群: 这是 glibc 的主体,分布 /lib 与 /usr/lib 中,包括 libc 标准 C 函转载 2012-11-23 12:38:03 · 6110 阅读 · 0 评论 -
linux上的apache2服务器开启激活和配置端口方法
绑定地址与端口启动apache2调用命令apache2ctl来启动,而非apache2。它可以简单地用start、stop、restart等参数,也可以使用和apahce2一样的参数。在/etc/init.d/apache2所以只用调用:安装apache2服务器:sudoapt-get install apache2开启服务器:sudo /etc/init.d/ap转载 2012-11-20 14:39:33 · 8807 阅读 · 0 评论 -
字符,字节,和编码
字符,字节和编码[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。转载 2012-11-23 16:41:55 · 761 阅读 · 0 评论 -
Linux命令——chmod(修改读写执行等权限)
Linux命令——chmod命令描述 变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:转载 2012-11-24 17:13:20 · 87999 阅读 · 2 评论 -
我的编程风格:
http://blog.youkuaiyun.com/SprintfWaterGHQ通过仔细斟酌,以后就统一用这种风格了!1.类名,结构题名:帕斯卡(Pascal)命名法:class MyName{}备注:代码里只有类名等结构题名才采用这类方法,所以很容易区分出来2.函数名:unix风格:get_the_number()备注:主要考录到这种方式比较难原创 2012-12-07 22:03:33 · 491 阅读 · 0 评论 -
C++命名规范
常见命名法:匈牙利命名法:基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。Camel命名法:即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线,例如runFast和run_fa转载 2012-12-07 18:02:23 · 685 阅读 · 0 评论 -
new/malloc
下面三种定义形式怎么理解?怎么动态分配空间?(1)、int**Ptr;(2)、int*Ptr[ 5 ]; 我更喜欢写成int*Prt[5];(3)、int( *Ptr )[ 5 ];此文引自网上,出处不详,但是觉得非常好。略改了一点。多维数组一向很难,一般都采用一维数组,但是一旦要用到还真是头疼。闲话少说,这里我就以三个二维数组的比较来展开讨论: (1)、int*转载 2012-12-08 11:10:54 · 534 阅读 · 0 评论 -
字符串转换
字符串转换转载:http://blog.chinaunix.net/uid-8354703-id-2472933.html[1]atof功能 将字符串转换成浮点型数 相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(con转载 2012-12-12 15:17:41 · 637 阅读 · 0 评论 -
如何在Ubuntu下安装”.deb“、”.bin“、”.tar.gz“、”.tar.bz2“格式的软件包!
转载:http://blog.youkuaiyun.com/zyz511919766/article/details/7574040分类: linux Ubuntu2012-05-16 20:50 1054人阅读 评论(0)收藏 举报今天在Ubuntu11.10中安装Google chrome浏览器是遇到了问题,下载好的“.deb”格式的安装文件google-chrome-转载 2012-12-19 15:26:48 · 783 阅读 · 0 评论 -
ping源代码完全解析
--------------------------------------------------author: Zero1,lingyi.pro#163.comdate: 2008-04-27--------------------------------------------------目录-------------1.相关知识2.相关数据结转载 2013-03-06 14:15:46 · 1685 阅读 · 0 评论 -
解析HTTP报文格式
一.浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式。 基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接: 1. 创建TCP套接字连接 客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。 2.转载 2013-03-06 15:08:51 · 5617 阅读 · 0 评论 -
不同变量类型的不同输出格式
符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%usigned -- char 8转载 2013-03-07 12:26:01 · 12816 阅读 · 0 评论 -
递归批量替换文件名,文件内容
递归批量将 a 命名为 b 脚本for i in `find ./` ;do NN=$(echo $i | sed 's/a/b/') ;mv "$i" "$NN";done原创 2015-06-12 10:15:23 · 2408 阅读 · 1 评论