Hi, a <loushanguan2...@sina.com> wrote: > it fails: cp: error reading > 'DCIM/ScreenRecorder/Screenrecorder-2022-01-30-12-29-58-111.mp4': Invalid > argument > > i run "ls -l", about 2G has been copied
> i use bullseye for i386, intel core2 Q8200 2.33G That's a machine whiere type "long" has 32 bit. I.e. the non-negative range is 0 to 2,147,483,647. 2 GB limits are usually due to call fseek(3) int fseek(FILE *stream, long offset, int whence); ... EINVAL The whence argument to fseek() was not SEEK_SET, SEEK_END, or SEEK_CUR. Or: the resulting file offset would be negative. So it would match the error message if the fseek offset value surpassed 2,147,483,647 bytes. The seek() method of jmtpfs class MtpLocalFileCopy uses fseek(3): https://sources.debian.org/src/jmtpfs/0.5-3/src/MtpLocalFileCopy.cpp/?hl=90#L90 It is used by the Read() method of MtpFile https://sources.debian.org/src/jmtpfs/0.5-3/src/MtpFile.cpp/?hl=71#L71 So it would be plausible that this is the place where "Invalid argument" comes from. What happens if you try a program that is less suspicious of using random access reading ? Like: cat </the/jmtpfs/file/path >/the/ext4/file/path Have a nice day :) Thomas