文件IO-1-标准输入输出

一. open、read、write、lseek、close,都是不带缓存的,头文件 <unistd.h>

二. 注意幻数0、1、2,分别代表标准输入,标准输出,标准错误

例子:从标准输入读入至多MAX_BUFF个字符,输出的标准输出。

/*
    Ray. 2012,07,02

    NOTE:

    1. STDIN_FILENO: 0, standard input
    2. STDOUT_FILENO: 1, standard output
    3. read & write
*/

#include <stdio.h>
#include <unistd.h> /*read*/
#include <errno.h>
#include <stdlib.h>

#define MAX_BUFF 1024

int main(void)
{   
    int n;
    char buf[MAX_BUFF] = {0};

    while((n = read(STDIN_FILENO, buf, MAX_BUFF)) > 0)
        if(write(STDOUT_FILENO, buf, n) != n)
            perror("write error!\n");

    if(n < 0)
        perror("read error!\n");

    exit(0);
}

 运行效果:

ray@ubt t1 $ ./a.out
hello
hello

例子中,并未调用open函数,这三个描述符是默认的。 

 

三. 函数

ssize_t read(int fd, void *buff, size_t nbytes);

ssize_t write(int fd, const void *buff, size_t nbytes);

转载于:https://my.oschina.net/u/1252361/blog/155861

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值