您的位置:首页 > 其它

标准输入和标准输出的read_write

2017-03-20 15:59 218 查看
在/usr/include/unistd.h中有如下定义:

/* Standard file descriptors.  */
#define STDIN_FILENO   0 /* Standard input.  */
#define STDOUT_FILENO  1 /* Standard output.  */
#define STDERR_FILENO  2 /* Standard error output.  */


#include <stdio.h>
#include <string.h>

/*客户端的处理过程*/
void process_conn_client(int s) {
ssize_t size = 0;
char buffer[1024]; /*数据的缓冲区*/

for (;;) { /*循环处理过程*/
/*从标准输入中读取数据放到缓冲区buffer中*/
size = read(0, buffer, 1024);
if (size > 0) {
/*读到数据*/
write(s, buffer, size); /*发送给服务器*/

size = read(s, buffer, 1024); /*从服务器读取数据*/
write(1, buffer, size); /*写到标准输出*/
}
}
}

/*服务器对客户端的处理*/
void process_conn_server(int s) {
ssize_t size = 0;
char buffer[1024]; /*数据的缓冲区*/
for (;;) { /*循环处理过程*/
size = read(s, buffer, 1024); /*从套接字中读取数据放到缓冲区buffer中*/

if (size == 0) { /*没有数据*/
return;
}

/*构建响应字符,为接收到客户端字节的数量*/
sprintf(buffer, "%d bytes altogether/n", size);
write(s, buffer, strlen(buffer) + 1);/*发给客户端*/
}
}
}


# app > out.log // 这样在代码中write(1, buf, size)就直接写入到文件之中了,无需在代码中操作文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐