Chciałbym przerobić na Windows
oryginalny kod https://github.com/BerkeleyLab/XVC-FTDI-JTAG/blob/master/ftdiJTAG.c
Problematyczny fragment to funkcja fdopen()
która powinna zamienić SOCKET na FILE*
Na Linux działa wszystko poprawnie
Na Windows zawsze fdopen failed
if ((s = createSocket(bindAddress, port)) < 0) {
exit(1);
}
for (;;) {
struct sockaddr_in farAddr;
socklen_t addrlen = sizeof farAddr;
FILE *fp;
int fd = accept(s, (struct sockaddr *)&farAddr, &addrlen);
if (fd < 0) {
fprintf(stderr, "Can't accept connection: %s\n", strerror (errno));
exit(1);
}
...
fp = fdopen(fd, "r");
if (fp == NULL) {
fprintf(stderr, "fdopen failed: %s\n", strerror(errno));
close(fd);
exit(2);
}
else {
processCommands(fp, fd, usb); // <<== ten punkt nigdy nie jest osiagniety na Windows
fclose(fp); /* Closes underlying socket, too */
}
w msys2 funkcja fdopen
jest zadeklarowana w stdio.h
ale czy powinna dzialac na platwofmie Win to nie mam pojecia
#if !defined(NO_OLDNAMES) || !defined(_POSIX)
FILE *__cdecl fdopen(int _FileHandle,const char *_Format) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
#endif