易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下进程间通信机制:FIFO(命名管道)

FIFO
,又称命名管道
,是Linux下(unix环境下)一种进程间通信的机制,应用广泛。
函数mkfifo
用于创建命名管道,使用命令man 3 mkfifo
可查看此函数信息。
FIFO创建后,可以像普通文件一样对其访问。
Linux下一个同名命令mkfifo
也用于创建FIFO,例如:
执行命令
$ mkfifo /tmp/fifo
$ cat /tmp/fifo
程序阻塞。
再打开一个shell,执行
$ echo hello > /tmp/fifo
前一个程序返回,显示hello
下面用一个简单程序,演示FIFO IPC的用法。
下载地址:http://download.csdn.net/source/2378181
该程序分为2端:
server程序创建一个FIFO,并从FIFO读取字符,转换成大写后输出到屏幕。
client程序读取用户输入并写入FIFO。
common.h
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define FIFO_PATH "/tmp/myfifo"
server.c
/*
*将从FIFO收到到数据(字符)转换为大写,并输出到屏幕
*/
#include "common.h"
int main()
{
int ret;
int fd;
char buffer;
int nread;
int i;
/*建立FIFO*/
ret = mkfifo(FIFO_PATH, 0777);
/*打开FIFO*/
fd = open(FIFO_PATH, O_RDONLY);
if(-1 == fd)
{
printf("error\n");
return -1;
}
while(1)
{
nread = read(fd, &buffer, 1);
if(nread > 0)
{
buffer = toupper(buffer);
printf("%c", buffer);
}
}
}

运行server后,可看到创建了文件/tmp/myfifo,这是mkfifo函数指定的命名管道的路径(名字)。
当然,系统不会真的在磁盘上创建这个文件。
client.c
/*
*读取输入,并写入FIFO
*/
#include "common.h"
int main()
{
int fd;
int ret;
char c;
fd = open(FIFO_PATH, O_WRONLY);
if(-1 == fd)
{
printf("error\n");
return -1;
}
while(c = getchar())
{
write(fd, &c, 1);
}
}
先启动server程序,再运行client,随便输入些字符。
server端将在屏幕上显示转换为大写后的输入字符。
作者:ZhengZhiren
原文链接:http://blog.csdn.net/ZhengZhiRen/archive/2010/05/21/5613843.aspx


相关文档:

Linux及FreeBSD系统下查看CPU信息的方法

一、Linux
查看cpu信息:
[junjie2@ljj ~]$ cat /proc/cpuinfo
二、Freebsd
dmesg 最简单的方法
freebsd# cat /var/run/dmesg.boot |grep CPU 可以查看 cpu信息
sysctl hw.model 看cpuid
sysctl machdep.tsc_freq 看cpu频率
# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
# dmesg | grep -i cpu ......

VirtualBox Windows 和Linux 共享文件

1.Windows 下打开virtualBox ,启动虚拟机。在虚拟机窗口上选择 设备 ->分配数据空间
2.选择Windows下你想要共享的文件夹 如H:share , 添加固定数据分配空间 ,分配各名字如:VMshare
3.在虚拟机linux终端挂起刚分配的数据空间,
   sudo monut -t vboxsf VMshare /home/plus/share #其中/home/plus/share是 ......

红帽启动大学生Linux大赛 填补开源人才缺口

腾讯科技讯(洛洛河) 5月20日消息,红帽(Red Hat)宣布已在国内启动大学生Linux技能大赛;并将通过初赛、复赛、决赛层层选拔,于7月17日决出获胜者。
红帽中国市场部总监董辛乙表示,国内Linux市场人才缺口很大,已经影响到了很多Linux项目的正常进行,希望通过这些举措增加大学生对Linux的兴趣,从而培养更多人才。
填 ......

linux自动启动 oracle


概述
让数据库在操作系统启动的时候自动启动,会让数据库的维护变得更加简单、方便。
曾经写过一篇在linux自动启动
oracle的文章“linux
下Oracle自动启动与停止(一)
”http://blog.csdn.net/chenxiaohua/archive/2008/02/26/2121878.aspx

该文章的方法需要用到/etc/oratab、$ORACLE_HOME/bin/dbst ......

使用ISO文件安装Linux [方法总结]

一. 准备知识
1. ISO文件
我们普遍使用的ISO文件是指包含着整个CD-ROM(ISO-9660 文件系统)内容的
映象, 是整个碟片从0扇区到最后一个扇区的完整复制,经常被用来在网络上传输
对于ISO文件我们可以:
1)刻录到光盘
2)用WinRAR,MagicISO等软件在Windows下查看或释放它的内容
3)在Linux系统 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号