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
¸Ã³ÌÐò·ÖΪ£²¶Ë£º
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
Ïà¹ØÎĵµ£º
2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......
Linux POSIX Shell »·¾³ÖÐÖ§³ÖÊäÈëÊä³öÖØ¶¨Ïò£¬Ó÷ûºÅ"<"ºÍ">"À´±íʾ¡£ÃüÁîÐÎʽ¿ÉÒÔÓÃ%>file»òÕß%<contentÀ´±íʾ(ÆäÖÐ%±íʾÎļþÃèÊö·û£º0Ϊ±ê×¼ÊäÈëstdin£¬1Ϊ±ê×¼Êä³östdout¡¢2Ϊ±ê×¼´íÎóstderr).ϵͳĬÈÏ%ÖµÊÇ1£¬Ò²¾ÍÊÇ1>£¬¿ÉÒÔ¼òдΪ>£¬Ò²¾ÍÊÇ˵ĬÈÏΪ1>¡£stdoutµÄĬÈÏÊä³öµ½ÖÕ¶Ë£¬stderrµÄĬÈÏÊä ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
H1 { margin-bottom: 0.21cm }
H1.western { font-family: "DejaVu Serif", serif }
H1.cjk { font-family: "AR PL UKai CN"; font-size: 24pt; font-style: normal; font-weight: bold }
H1.ctl { font- ......
ÓÉÓÚÎÒÔÚÍøÉÏÏÂÔØÁËUbuntu LinuxÀ´°²×°·¢ÏÖÊÖͷû¿Õ°×¹âÅ̼̿cd,ËùÓÐgoogleÁËÏÂÕÒµ½ÁËÈçÏÂÎÄÕ½øÐÐʵ¼ù. ===================½Ì³Ì1========================== ˵µ½°²×°²Ù×÷ϵͳ£¬´ó¶àÊýÈËÊìϤµÄÊÇ´Ó¹âÅÌÒýµ¼£¬Æäʵ´ÓºÜ¶à´æ´¢É豸¶¼¿ÉÒÔʵÏÖϵͳÒýµ¼µÄ¡£ÓÉÓÚLinux²Ù×÷ϵͳµÄ·¢²¼ºÜ¶à£¬¶ø¶àÊýÈ˶¼ÊÇͨ¹ýÍøÂçÏÂÔØ²Ù×÷ϵͳµ ......
ϵͳÔÊÐíÒ»¸ö½ø³Ì´´½¨Ð½ø³Ì£¬Ð½ø³Ì¼´Îª×Ó½ø³Ì£¬×Ó½ø³Ì»¹¿ÉÒÔ´´½¨ÐµÄ×Ó½ø³Ì£¬Ðγɽø³ÌÊ÷½á¹¹Ä£ÐÍ¡£Õû¸ölinuxϵͳµÄËùÓнø³ÌÒ²ÊÇÒ»¸öÊ÷Ðνṹ¡£Ê÷¸ùÊÇϵͳ×Ô¶¯¹¹ÔìµÄ£¬¼´ÔÚÄÚºË̬ÏÂÖ´ÐеÄ0ºÅ½ø³Ì£¬ËüÊÇËùÓнø³ÌµÄ׿ÏÈ¡£ÓÉ0ºÅ½ø³Ì´´½¨1ºÅ½ø³Ì£¨ÄÚºË̬£©£¬1ºÅ¸ºÔðÖ´ÐÐÄں˵IJ¿·Ö³õʼ»¯ ......