Linux管道
管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。Linux管道的实现机制在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为:· 限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4
Linux系统基础开发技术1:构建Linux 库文件
Author:gnuhpc WebSite:blog.csdn.net/gnuhpc实验环境:Ubuntu Linux 10.04 32bit1.库文件简介库文件是一个包含了编译后代码、数据的文件,用于与程序其他代码连编,它可以使得程序模块化、编译速度更快,并且易于更新。库文件分为三种(实质为两种,在随后两句话有解释):静态库(在程序之前就已经装载进其中了)、共享库(在程序启动之时加载进去,在程序直接共享)、动态加载库(dynamically loaded,DL)(在程序运行中任何时候都可以被加载进程序中使用,事实上DL并非是一个完全不同的库类型,共享库可以用作DL而被动态加载(静态库
信号量函数 semget() semop() semctl()
semget() 可以使用系统调用semget()创建一个新的信号量集,或者存取一个已经存在的信号量集: 系统调用:semget();原型:intsemget(key_t key,int nsems,int semflg);返回值:如果成功,则返回信号量集的IPC标识符。如果失败,则返回-1:errno=EACCESS(没有权限)EEXIST(信号量集已经存在,无法创建)EIDRM(信号量集已经删除)ENOENT(信号量集不存在,同时没有使用IPC_CREAT)ENOMEM(没有足够的内存创建新的信号量集)ENOSPC(超出限制) 系统调用semget()的第一个参数是关键字值(一般是由系统调用ftok()返回的)。系统内核将此值和系统中
cgi编程概述
cgi编程概述 徐春香 随着internet的广泛使用,人们对被动地接收信息或服务的方式越来越不满意,人们不希望看到或接受不喜欢的服务,而希望主动去参与。同时,厂商也希望能利用internet获得用户对其服务的质量、内容或性质的反馈以便更好地改进服务。总之,人们都希望改变internet的单向通信方式,使原先只能提供静态文档或静态链接的web页面具有交互性,变得生动、富有生命力。这时,internet上就需要提供web应用程序以支持用户的随机参与。于是,cgi(common gateway interface,通用网关接口)便应运而生。 一、cgi工作方式 cgi
Linux项目组编程规范
前言: 本手册以林锐博士编写的《高质量 C++/C 编程指南》内容为参考,根据项目组成员的经验总结和共同协定,稍作简洁和修改。本规范手册分成两部分: 第一部分:以条款的形式列出了项目组编程的规则和建议,规则是指项目组成员必须要遵守的编程规范,建议是指推荐使用的编程风格。 第二部分:是对第一部分规则和建议的详细说明。建议先仔细阅读第二部分,在已经了解了每条规则和建议的真正意义以及为什么要遵守的基础上,在实际项目编程时可以通过直接查阅第一部分来实现快速规范代码的目的。 本手册由Linux项目组成员共同制定,暂
查看cpu信息
理解 /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 15model : 6model name : Intel(R) Pentium(R) 4 CPU 3.00GHzstepping : 5cpu MHz : 3143.295cache size : 0 KBphysical id 0siblings : 1fdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 6wp : yesflags : fpu vme pse tsc msr pae cx8 sep pge cmov acpi mmx fxsr sse
互斥锁pthread_mutex_t的使用
互斥锁pthread_mutex_t的使用http://hi.baidu.com/cunlin/blog/item/1f9e3f384c6bbeffb211c79c.html 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; 在LinuxThreads实现中,pthread_mutex_t是一个结构,而PTHREAD_MUTEX_INITIALIZER则是一个结构常量。 动态方式是采用pthread_mutex_init()函数来初始化互斥锁,API定义如下: int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *m
详解linux下的串口通讯开发
详解linux下的串口通讯开发 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口设备。在linux系
linux ar 打包库到另一个库中
不论你是否遇到过或者想到过这样的情况,在一个库中添加另一个库,这个方法对你们来说都是及其有用的。因为我在网上搜索了半天还没有搜索到与此方法相关的文章。我已经测试过了通过这种方法生成的库是完全可用的,而且非常方便。通过在实际的项目中我学到了这个很好的方法,所以在这里给大家介绍一个,希望对大家有帮助。大家就不用走更多的弯路ar命令的操作选项和任选项我就不介绍了,很简单,网上也有很多文章在介绍,随便看看就可以了。如果你不知道,还是应该去先去看看再来这篇文章。如果我们简单的通过ar命令把几个.o文件,如yuer1.
linux用户管理常用命令
[转] linux用户管理常用命令linux用户管理常用命令 1)管理用户(user)的工具或命令; useradd 注:添加用户 adduser 注:添加用户 passwd 注:为用户设置密码 usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等; pwcov 注:同步用户从/etc/passwd 到/etc/shadow pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整; pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件; finger 注:查看用户信息工具 id 注
IP组播网络编程
IP组播网络编程 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://leezen.blogbus.com/logs/19625232.html5.2 组播应用程序接口与编程 RFC1112推荐了一些支持组播的应用程序接口: ●加入一个组播组; ●离开一个组播组; ●为调整范围对一个组播数据的IP TTL值进行设定; ●为组播传输和接收设定本地的接口; ●禁止输出的组播数据回送。 现在,许多TCP/IP实现都支持RFC1112所提到的要求,下面简要介绍UNIX(Berkeley Socket)和Windows(Winsock) API。 5.2.1 Berkeley Socket组播API 所有Berkeley Socket API都采
xshell连接linux中文乱码
对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少一些。因此,很多稍微有英语基础的Linux用户都宁愿使用英文界面的系统。但是,矛盾又突现出来:在英文系统下,如何才能正常显示和输入中文呢?有没有两全其美的方案呢?因此,笔者开始探索如何解决这个问题。我的完美
man出错解决办法
最近man出问题了,在Linux环境里不用man还真不行,随时都要查看。在工作中,不论是命令还是函数,都需要用到man,先看看出错提示把。[root@localhost xchen]# man lsfgets: No such file or directoryError reading man page /usr/share/man/man1/ls.1.gzNo manual entry for ls解决办法:首先查看gzip ,gunzip工具是否存在,因为根据上面出错提示可知,man手册都是以.gz存在的。[root@localhost xchen]# whereis gunzipgunzip: /bin/gunzip /usr/bin/gunzip /usr/share/man/man1/gunzip.1.gz这就不对了,系统gunzip工具没问题啊?详细查看
本地时间与UTC(世界协调时间)的转换
本地时间与UTC(世界协调时间)的转换 首先我们了解一下时间的相关概念,以及之间的区别,需要了解的时间概念有:本地时间(locale time)格林威治时间(Greenwich Mean Time GMT)时间协调时间 (Universal Time Coordinated UTC) 本地时间,显而易见不用解释了 先看看时间的标准:(1)世界时 世界时是最早的时间标准。在1884年,国际上将1s确定为全年内每日平均长度的1/8.64×104。以此标准形成的时间系统,称为世界是,即 UT1。1972年国际上开始使用国际原子时标,从那以后,经过格林威治老天文台本初子午线的时间便被称为世界时,即
linux系统时区设置
系统时钟设置格式:date 月/日时:分:年.秒[root@localhost ~]# date 080319462010.55二 8月 3 19:46:55 CST 2010或使用date –set (月/日/年 时:分:秒)设置时钟。[root@localhost ~]# date --set "08/30/2010 09:50:11" (月/日/年 时:分:秒)一 8月 30 09:50:11 CST 2010 查看系统时钟[root@localhost ~]# date日 8月 1 15:56:27 CST 2010hwclock | clock时钟查看相同[root@localhost ~]# hwclock --show 2010年08月01日 星期日 16时07分01秒 -0.185252 seconds 设置硬件时钟硬件时钟设置格式:hwclock | clock --set
Linux中/proc目录下文件详解
Linux中/proc目录下文件详解声明:可以自由转载本文,但请务必保留本文的完整性。作者:张子坚email:zhangzijian@163.com说明:本文所涉及示例均在fedora core3下得到。--------------------------------------------------------------------------------/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。可以使用的文件随系统配置的变化而变化。命令procinfo能够显示基于其中某些文件的多种系统信息。以下详细描述/proc下的文件:----------------------------------------------