设为首页 加入收藏

TOP

Linux系统编程:简单文件IO操作(三)
2018-01-01 06:07:11 】 浏览:872
Tags:Linux 系统 编程 简单 文件 操作
。接下来,我们把标准输出关闭,printf就不会输出,如果用dup复制原来的fd,那么新dup出来的fd就是1(对应标准输出)


之后标准输出的内容都会被写入到原来fd对应的那个文件


#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>


int main(int argc, char const *argv[]) {


    int fd = -1;


    fd = open( "ghostwu2.txt", O_RDWR );
    if ( -1 == fd ) {
        perror( "open" );
        return -1;
    }else {
        printf( "文件打开成功fd=%d\n", fd );
    }


    //fd=0 对应stdin  fd=1 对应 stdout  fd=2 对应stderror
    close( 1 ); //关闭fd=1的标准输出之后,printf输出看不见


    int newFd = -1;


    newFd = dup( fd ); //newFd一定是1, 因为分配后的fd从最小的没被占用的开始
    char buf[3];
    sprintf( buf, "%d", newFd ); //newFd转字符串型
    printf( "这是一段输出,由于newFd和fd关联到标准输出(newFd=1),会被写入到文件\n" );
    write( fd, buf, 1 );


    return 0;
}


首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇多线程CountDownLatch和Join 下一篇ActiveMQ入门案例-生产者代码实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目