On Jun 6 19:27, j...@post.cz wrote: > Hello, I'm porting tool from Linux envirmnment to Windows Cygwin. > I'm unable to get correct data from pread() while reading /dev/sdx > On Linux it works as expected, under Cygwin I receive uncorrect data. > > I have isolated the problem with the following program: > > #include stdio.h > #include sys/types.h > #include sys/stat.h > #include fcntl.h > #include unistd.h > > int main(int argc, char *argv[]) > { > unsigned char sbuff[512]; > int f1; > f1=open(argv[1], O_RDWR); > pread(f1, sbuff, 512, 0); > for(int i=0; i 512; i++) printf("%x ",sbuff[i]); > close(f1); > } > > If the argument is regular file it works. But if the argument is /dev/sdb it > does not provide correct data. The shell is run under Administrator > permission. > Thank you for your opinion.
Cygwin's pread is only implemented for regular files at the moment, for all other objects it returns -1 with errno set to ESPIPE. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
signature.asc
Description: PGP signature