我正在使用web server
中的C
。但对于http
请求解析和响应,我使用的是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这样的小文件,但是当文件较大时,由于缓冲区大小的限制,我无法在管道上读取整个内容。
答案 0 :(得分:1)
增加buffer2
的大小,以便读取文件的所有内容。截至目前,您的缓冲区大小可能小于文件的内容,因此未读取所有值。