gpt4 book ai didi

C 中 FILE 类型和文件描述符之间的转换

转载 作者:行者123 更新时间:2023-11-30 15:27:34 24 4
gpt4 key购买 nike

语言:C\操作系统:Linux

我正在编写一个流媒体程序,我已经实现了播放、停止和暂停功能,当我开始实现搜索时,我遇到了以下问题并陷入困境。

为了在流式传输之前打开文件,我使用以下方法:

int transport_fd = open(tsfile, O_RDONLY);
if(transport_fd < 0)
{
fprintf(stderr, "can't open file %s\n", tsfile);
close(sockfdstr); // using this to stream
}
// .....
//.....
len = read(transport_fd, send_buf, packet_size); // here, the read function takes fd as a first argument.

要使用fseek()函数,我应该传递一个FILE类型的指针作为要查找的打开文件,即传递一个文件指针指向已经打开流,那么我应该如何处理这个问题?

示例虚拟代码:

FILE *fp;
{CODE TO CONVERT BETWEEN *fp AND tsfd - OR ANY OTHER FIX TO THIS SITUATION}
tsfd = fseek(fp, offset, SEEK_CUR);
len = read(tsfd, send_buf, packet_size);

最佳答案

我认为您可以使用 lseek 函数来达到您的目的。您已经使用了 open 和 read 而不是 fopen 和 fread,只需使用 lseek 而不是 fseek。

关于C 中 FILE 类型和文件描述符之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930436/

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