0
我正在使用web server
的C
。但對於http
請求解析和響應我正在使用bash
。從管道大文件中讀取C/Bash
bash和服務器之間的通信正在經歷fifo pipes
。 我需要找到一個像/index.html
這樣的請求文件,並通過管道發送給服務器,然後將其發送給客戶端。
我的代碼在尋找這樣的:
bash:
cat $filename>/tmp/pipeToServer filename is something like index.html or image.jpg
而在服務器端我讀它喜歡:
pipe_r = open(/tmp/pipeToServer, O_RDONLY);
n = read(pipe_r, buffer2, sizeof(buffer2));
and buffer2 is char buffer[4096]
所以我的問題是,這是隻有像1KB小文件的工作,但當文件較大時,由於緩衝區大小的限制,我無法讀取管道中的全部內容。
'read()'只讀取請求的字節(或更少)。所以,如果你有更大的輸入,那麼你可以使用一個單獨的較大緩衝區的循環來根據需要複製(或者'malloc()'),'read()'說沒有更多的輸入。 –