标准输入和标准输出的read_write

在/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)就直接写入到文件之中了,无需在代码中操作文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值