- ·上一篇文章:Linux使用shell脚本统计高速网络流量的步骤
- ·下一篇文章:CentOS开机时出现GRUB引导错误怎么办?
Linux创建FIFO的方法
FIFO管道是一种文件类型,在Linux上创建FIFO非常容易,下面小编将针对FIFO管道的创建和使用做个详细介绍,感兴趣的朋友可以看看。 FIFO,又称作命名管道(named pipe),它是Linux系统中用于进程间通信的一种方法。 FIFO和pipe的区别在于: FIFO在文件系统中有对应的inode,可以通过ls命令查看。 sh-3.2# ls -lhF 。/fifo_file 100 prwxrwxrwx 1 root root 0 Jan 1 1970 。/fifo_file| sh-3.2# 正因为它有一个名字,所以任何进程都可以访问它,所以FIFO可用于任意两个进程之间的通信。 pipe没有名字,在现有文件系统中无法查看到它的存在。 它只能用于父子进程、兄弟进程等具有血缘关系的进程间通信。 创建FIFO的方法如下: 1. 调用umask系统调用来设定创建文件的权限, #include 《sys/types.h》 #include 《sys/stat/h》 mode_t umask(mode_t mask); 2. 调用unlink系统调用先删除已经存在的fifo, #include 《unistd.h》 int unlink(const char *pathname); 3. 调用mkfifo库函数去创建一个FIFO文件, #include 《sys/types.h》 #include 《sys/stat.h》 int mkfifo(const char *pathname, mode_t mode); 或者可以通过调用mknod系统调用并且指定参数mode为S_IFIFO也可以创建一个FIFO文件, #include 《sys/types.h》 #include 《sys/stat.h》 #include 《fcntl.h》 #include 《unistd.h》 int mknod(const char *pathname, mode_t mode, dev_t dev); 注意: 1. 使用FIFO进行通信,每次传输的数据要限定在PIPE_BUF之内; 2. 对于FIFO的访问就像访问正规文件(regular file)一样,可以使用open/read/write/close等系统调用进行访问。 使用FIFO的应用有: 1. 单纯的生产者/消费者问题,一个进程读数据,一个进程写数据; 2. 实现client/server架构的程序,客户端和服务器端通过FIFO进行通信。 上面就是小编总结的Linux创建FIFO管道的方法介绍了,本文除了介绍了FIFO管道的创建外,还稍微介绍了下FIFO的使用及其注意事项,在使用的时候需特别注意。
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ゆ繝鈧潏鈺傤潟闁圭儤鏌¢崑鎾绘晲鎼粹€插缂備焦澧庨弲婊呮崲濞戞﹩鍟呮い鏃囧吹閸戝綊姊虹粙娆惧剱闁告梹鐟╅獮鍐亹閹烘垹鍊炲銈呯箰鐎氼喖袙閵忋倖鈷戦柟绋挎捣閳洟鏌i埡濠傜仩妞ゎ偄绻愮叅妞ゅ繐鎳庢禒顓㈡⒑閸濆嫷妲哥紒銊╀憾楠炴劙宕橀鍡欙紳婵炴挻鑹惧ú銈呪枍濮椻偓閺屾盯濡搁妸锔俱€愰梺浼欑悼閸忔﹢鐛€n喗鏅滈柤鎭掑劜椤忕喖姊绘担铏瑰笡闁挎氨鐥紒銏犲籍鐎规洏鍨介獮鏍ㄦ媴閸忓瀚奸梻浣侯攰閸嬫劙宕戝☉銏犵婵せ鍋撻柡灞剧洴瀵剟宕稿Δ鈧浼存⒑闂堟稒顥滈柛濠傜仢閻g兘鏁愰崱妤冪獮闂佸壊鍋呯划搴ㄦ儎鎼淬劍鈷掑ù锝囨嚀椤曟粍绻涢崣澶屽⒌鐎规洘鍨垮畷鍗烆渻閵忥紕娲存鐐差儔閹晠鎮界喊澶屽簥闂備礁鎼ˇ顖炴偋閸曨垰绀夐悘鐐电叓瑜版帩鏁嬮柍褜鍓熷璇差吋婢跺á銊︺亜閺嶃劎鐭岄柡鍡愬€曡灃闁绘﹢娼ф禒锕傛偨椤栨せ鍋撻幇浣告濡炪倖娲嶉崑鎾垛偓瑙勬礃鐢繝寮崒鐐茬畾鐟滃酣宕曢鍫熲拻闁稿本鑹鹃埀顒佹倐瀹曟劙鎮滈懞銉ユ畱闂佸壊鍋呭ú鏍不閻樼粯鐓欓柣鎰靛墮婢ь垶鏌涢妶鍡樼闁哄本鐩、鏇㈡晲閸℃瑯妲紓鍌欒兌婵娊宕¢幎钘夎摕闁绘梻鍘х粻姘舵煟濡も偓閻楁粌螞閸曨垱鈷戦柛婵嗗閸庡海绱掗懜闈涘摵鐎殿喖顭烽幃銏ゆ偂鎼达綆妲堕柣鐔哥矊缁绘帡寮灏栨闁靛骏绱曢崢鎼佹⒑閸涘﹣绶遍柛鐘愁殜瀹曟劙骞囬悧鍫㈠幐闁诲繒鍋犻褎鎱ㄩ崒鐐寸厵妞ゆ柨鎼埀顒佺箓閻g兘骞掗幋鏃€顫嶅┑顔筋殔濡梻妲愰敓锟� Linux创建FIFO的方法闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閻橀潧骞堟繝娈垮枟閿曗晠宕㈡禒瀣︽繝闈涙閺€浠嬫煃閳轰礁鏆為柛濠冨姍閺屾盯鍩¢崘銊ゅ摋濡炪倧绠戝鍫曞Φ閸曨垱鏅滈柣鎰靛墯濮e牓姊虹紒妯圭繁闁革綇绲介悾鐑藉醇閺囥劍鏅㈡繛杈剧到閹碱偅鎱ㄥú顏呪拻濞达絿鎳撻婊勪繆椤愶紕鍔嶉柟渚垮姂婵″爼宕ㄩ鍛偓娲⒑閸濆嫬鏆婇柛瀣尵缁辨帞绱掑Ο鑲╃杽闂佽鍠曠划娆徫涢崘銊㈡婵°倓绀佹刊浼存⒒閸屾瑧鍔嶉柟顔肩埣瀹曟繂鐣濋崟顒€浜繝闈涘€绘灙缂佺姵姘ㄩ埀顒€鍘滈崑鎾绘煕閺囩偟浠涢柡鍜佷邯濮婃椽鏌呴悙鑼跺濠⒀冪摠椤ㄣ儵鎮欓幓鎺撴闂佽鍠楅悷褔鍩€椤掑嫭娑ч柟鑺ョ矒閹線宕奸妷锔规嫼闂佺鍋愰崑娑㈠礉濮椻偓閺屾盯寮崸妤€寮伴悗瑙勬穿缂嶄礁鐣峰鈧俊鎼佸閳╁啯婢戦梻鍌欑閻ゅ洤螞閸曨倠娑樜旈崨顔尖偓鍫曟煟閺傚灝鎮戦柛瀣剁秮閺屽秷顧侀柛鎾跺枛瀵偊宕橀鑲╁姦濡炪倖宸婚崑鎾垛偓瑙勬尭鐎氭澘顫忔ウ瑁や汗闁圭儤鎼槐鐢告⒑缂佹ê閲滅紒鐘虫崌楠炲啴鍨鹃弬銉︻潔濠碘槅鍨扮换鎰礊婵犲洤鏋侀柟鐗堟緲瀹告繃銇勯弮鍥棄闁哄鍨垮缁樻媴閾忓箍鈧﹪鏌¢崪浣风敖缂佽京鍋炵粭鐔煎焵椤掆偓椤曪絾绻濆顓炰簻缂佺偓濯芥ご鎼佸疾閳哄啰纾藉ù锝呮贡閳藉銇勯幋婵囶棦闁诡喗瀵х粭鐔煎焵椤掑嫬绠栨俊銈呭暞閸犲棝鏌涢弴銊ュ妞わ富鍙冨铏圭矙鐠恒劎顔夐梺鎸庢磸閸ㄨ姤淇婄€涙ɑ濯撮柤鍙夌箘閸犲酣鍩㈡惔銊﹀€锋い鎴亽娴滎亜顫忕紒妯诲闁兼亽鍎埀顒€鍟扮槐鎺旀媼閸︻厾鐦堥悗瑙勬礉椤鈧絻鍋愰崚鎺楀礂婢跺﹣澹曢梺鍝勫暙閻楀棛绮堥崘鈹夸簻闁哄倹瀵ч~宥囨喐閺冨牆钃熸繛鎴欏灩閻掓椽鏌涢幇鍓佺?缂佸彉鍗冲铏光偓鍦濞兼劙鏌i埡濠傜仩妞ゎ偄绻愮叅妞ゅ繐鎳庢禒顓㈡⒑閸濆嫷妲归悗绗涘浂鏁婇柍褜鍓熷缁樻媴閻戞ê娈岄梺鎼炲€栭悧鐘荤嵁韫囨稒鏅搁柨鐕傛嫹
