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

2021-12-30 05:41:10 字數 1940 閱讀 4550

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*

儲存退出;

step 5:進行編譯鏈結:

$ 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...