文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>将标准输入复制到标准输出

将标准输入复制到标准输出

时间:2010-12-05  来源:longmenyu

预备知识: 1.  #include <unistd.h>
    ssize_t read(int fd, void *buf, size_t count);
    read()  attempts to read up to count bytes from file descriptor fd into the buffer starting at       buf.

2.  #include <unistd.h>
    ssize_t write(int fd, const void *buf, size_t count);
    write()  writes  up  to  count bytes from the buffer pointed buf to the file referred to by the     file descriptor fd.
该程序可用于复制任一Unix普通文件。 程序清单:

#include <stdio.h>
#include <stdlib.h> //exit(0),exit(1)

#include <unistd.h> //read(),write(),STDIN_FILENO,STDOUT_FILENO


#define BUFFERSIZE 4096

int main(int argc,char * argv[])
{
    int n;
    char buf[BUFFERSIZE];
  
    while((n = read(STDIN_FILENO,buf,BUFFERSIZE)) > 0)
    {
        if(write(STDOUT_FILENO,buf,n) != n)
        {
            printf("Write Error!\n");
            exit(1);
        }
    }
    if(n < 0)
    {
        printf("Read Error!\n");
        exit(1);
    }
    exit(0);
}

编译源程序:  gcc -o cpstdintostdout cpstdintostdout.c 执行程序: ./cpstdintostdout >writed.txt 回车后等待用户终端标准输入(Ctrl+D结束,注意:千万不能用Ctrl+C,否则不能重定向到writed.txt)。 如果输出文件writed.txt并不存在,则Shell回创建它。查看writed.txt发现里面就是刚才终端输入的内容。 若以下列的方式执行程序: ./cpstdintostdout < infile > outfile  那么名为infile的文件内容回复制到名为outfile的文件中。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载