利用linux管道實現乙個單向聊天工具

2021-08-18 00:21:00 字數 2171 閱讀 2675

step 1:$ mkfifo fifo1

step 2 :$ vim readfifo.c新增如下**:

//readfifo檔案

#include

#include

#include

#include

#include

#include

#include

#include

int main()

close(fd);

return

0;}

儲存退出;

step 3:$ vim writefifo.c新增如下**:

檔案*****************

#include

#include

#include

#include

#include

#include

#include

#include

int main()

write(fd, buf, sizeof(buf) );//將使用者從鍵盤輸入的字元通過fifo傳送出去

memset(buf, 0, sizeof(buf) );//重新整理buf

}close(fd);

return

0;}

儲存並退出;

step 4:編寫makefile ,將readfifo和writefifo同時進行編譯

.suffixes

:.c .o

cc=gcc

srcs1=readfifo.c

srcs2=writefifo.c

objs1=$(

srcs1

:.c=.o)

objs2=$(

srcs2

:.c=.o)

exec1=readfifo

exec2=writefifo

all:

$(objs1) $(

objs2)

$(cc) -o $(

exec1) $(

objs1)

$(cc) -o $(

exec2) $(

objs2)

@echo

' ^-^ ^-^ ^-^ ^-^ ^-^ ok ^-^ ^-^ ^-^ ^-^'

.c.o:

$(cc) -wall -g -o $@ -c $<

clean:

rm -f $(

objs1) $(

objs2)

rm -f core*

儲存退出;

$ make clean

$ make

$ ./readfifo

//開啟另一終端,執行下面步驟

$ ./writefifo

結果如下所示:

三步分析:

分析1:當執行$ ./readfifo時,將出現一片空白,其實它在等待讀出寫入的資料,如圖中第一步所示,

分析2:當執行$ ./writefifo時,也出現空白區,這就意味著,使用者可以從鍵盤上輸入資料了,如第二步所示,

分析3:當使用者寫入資料,敲下回車鍵,將會由第二個終端向第乙個傳遞資料,如下圖所示:

倘使用者一直從第二個終端輸入,那麼第乙個終端將會接到相應的內容,直到使用者不想再輸入了,想退出輸入,那麼,輸入0,在回車,就會立刻結束此次通訊,如下所示:

利用linux管道實現乙個單向聊天工具

step 1 mkfifo fifo1 step 2 vim readfifo.c 新增如下 readfifo檔案 include include include include include include include include int main close fd return 0 儲...

利用管道實現程序間的單向通訊

管道是程序間通訊的最原始方式,今天我們利用管道的程序間通訊,來實現簡單的程序間單向通訊 首先我們需要了解命名管道的一些特性命名管道的使用與建立 然後建立乙個fifo c的檔案來實現輸入資料和傳送資料 這是乙個命名管道的實現,往命名管道中寫入資料,並且傳送給另乙個程序 1.建立乙個命名管道 int m...

利用CoreAnimation實現乙個時間的進度條

那麼接下來就是如何用coreanimation實現乙個進度條控制項了。首先呢,讓我們建立乙個繼承自cashapelayer的wkprogressbarlayer。wkprogressbarlayer預設自身的bounds就是整個進度條的大小。inte ce wkprogressbarlayer ca...