gpt4 book ai didi

c - 使用系统调用将文件内容写入标准输出?

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:58 26 4
gpt4 key购买 nike

我了解如何打开文件并将该文件的内容写入另一个文件。我想知道如何使用低级系统调用打开文件 open() write() read() close() 打开同一个文件并将其写入标准输出。这可能吗?

// OPEN OUTPUT FILE
if((output_file = open(argv[3], O_WRONLY|O_APPEND|O_CREAT, S_IRUSR|S_IWUSR)) < 0)
{
progress("couldn't open output");
perror(argv[3]);
exit(1);
}

// OPEN INPUT FILE
if((input_file1 = open(argv[1], O_RDONLY)) < 0) // open file 1
{
progress("couldn't open file1");
perror(argv[1]);
close(output_file);
exit(1);
}

// WRITE
while((n = read(input_file1, buffer, sizeof(buffer))) > 0)
{
if((write(output_file, buffer, n)) < 0)
{
perror(argv[3]);
close(input_file1);
close(output_file);
exit(1);
}
}

最佳答案

标准输出只是另一个文件,它已经打开(除非它已经关闭)。它的文件描述符是 STDOUT_FILENO ,或者 fileno(stdout) , 通过包含 <stdio.h> 获得在 Posix 上:

write(STDOUT_FILENO, buffer, n)

关于c - 使用系统调用将文件内容写入标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com