在C中的FILE类型和filedescriptor之间转换

朗: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);
cfz42

我认为您可以出于自己的目的使用lseek函数。您已经使用了open and read而不是fopen和fread,仅使用了lseek而不是fseek。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章