As I attempt to complete my native gprolog FastCGI project I am digging
into the source code to answer some questions and I have one so far.

I wanted to know what the sock_accept/4 predicate got up to behind the
scenes. Traditionally in C you have used the new socket for send() and
recv(). Anyway, this is what I saw:

#ifdef _WIN32
  int r;

  Os_Test_Error((fd = _open_osfhandle(sock, _O_BINARY | _O_RDWR |
_O_BINARY)));
  Os_Test_Error((r = dup(fd)));
  Os_Test_Error_Null((f_out = fdopen(fd, "w")));
  Os_Test_Error_Null((f_in = fdopen(r, "r")));
#else
*  Os_Test_Error((fd = dup(sock)));*
*  Os_Test_Error_Null((f_in = fdopen(sock, "rt")));*
*  Os_Test_Error_Null((f_out = fdopen(fd, "wt")));*
#endif

I have bolded the code running on OSX... my question is a simple one. what
does the "t" stand for. I have checked lots of documentation and nowhere is
the "t" mentioned.

I am guessing it might be "text mode" but (a) the GNU docs say that streams
created like this are always binary...

REF:
http://www.gnu.org/software/libc/manual/html_node/Descriptors-and-Streams.html

and (b) I am dealing with binary packets and I really really don't want any
CRLF translations happening without my knowledge.

So, is the "t" redundant and could be removed, can I relax, it all *seems*
to work OK but I am just curious to know if the "t" may be an artefact from
a really old release back in the day.

Thanks.
Sean Charles.
_______________________________________________
Users-prolog mailing list
Users-prolog@gnu.org
https://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to