gpt4 book ai didi

c - 如何检查文件是否完全到达/复制?

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

我们有一项服务可以在文件到达/复制到该文件夹​​时处理来自特定文件夹的文件。现在,在文件完全到达之前,服务正在处理并因错误而失败。现在,如何检查文件完全复制后只读?

该服务在 Linux 上运行。之后,失败并显示“ERR_READING”,进程将休眠 5 秒。甚至,进程无法读取文件。可能在完全复制之前读取文件可能会损坏文件

下面是我们用来从文件中读取数据的代码:

int file_read( char *fname, TRANSACTION **tr )
{
int ret;
FILE *fp;

fp = fopen( fname, "r" );
if( fp == NULL )
{
return( NO_FILE );
}

if(( ret = tr_read_tran( fp, tr ))!=0)
{
sleep(5);
ret = tr_read_tran( fp, tr );
}

fclose( fp );

return( ret );
}


static int tr_read_tran( FILE *fp, TRANSACTION **tr )
{
int ret,
t;
char *p,
*bkpt,
buf[ BUFSIZE ];

if( fgets( buf, BUFSIZE, fp ) == NULL )
{
return( ERR_READING ); ***//Failing here because of file not completeley arrived***
}
....
...
ret = //gets value for ret

return( ret )
}

最佳答案

您可以为下载的文件创建单独的文件夹。然后只需将它们重命名/移动到工作目录即可。

另一种方法是在名称后附加一些“特殊”字符,这将告诉服务文件仍在下载中。

关于c - 如何检查文件是否完全到达/复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31848018/

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