LANG:C \ OS:Linux
我正在编写一个流媒体程序,我已经实现了Play,停止和暂停功能,当我来实现搜索时,我遇到了以下问题而且卡住了。
要在流式传输之前打开文件,我使用以下方法:
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);
答案 0 :(得分:1)
我认为您可以将lseek功能用于您的目的。 你已经使用open和read而不是fopen和fread,只需使用lseek而不是fseek。