home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.os.development      Operating system development chatter      4,255 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 4,134 of 4,255   
   Paul Edwards to All   
   O_TEXT   
   20 Feb 24 06:36:08   
   
   From: mutazilah@gmail.com   
      
   Some operating systems like MVS present a whole   
   block of a block device to the application (thus   
   C library), and the C library is responsible for   
   sorting things out. Unix instead converts that   
   into a byte stream for you.   
      
   Similarly, it seems that almost everyone expects   
   the application, thus C library, to be responsible   
   for getting the line endings of text files correct.   
      
   There is one exception that I know of, sort of,   
   which is Cygwin, which has this in fcntl.h:   
      
   /* For machines which care - */   
   #if defined (_WIN32) || defined (__CYGWIN__)   
   #define _FBINARY        0x10000   
   #define _FTEXT          0x20000   
   #define _FNOINHERIT     0x40000   
      
   #define O_BINARY        _FBINARY   
   #define O_TEXT          _FTEXT   
   #define O_NOINHERIT     _FNOINHERIT   
      
      
   Now when I am running a Linux ELF binary on PDOS/386,   
   I would prefer that it "fits in" with the rest of the   
   system and gets CRLF endings. Basically the same as   
   Cygwin.   
      
   For that to work I need the open syscall to carry the   
   text/binary information. Binary is the default, so I   
   just need a text flag.   
      
   Is there a suitable bit I can use?   
      
   There seems to be lots of things currently in use   
   (here are some):   
      
   #ifndef __O_LARGEFILE   
   # define __O_LARGEFILE	0100000   
   #ifndef __O_DIRECTORY   
   # define __O_DIRECTORY	0200000   
   #ifndef __O_NOFOLLOW   
   # define __O_NOFOLLOW	0400000   
   #ifndef __O_CLOEXEC   
   # define __O_CLOEXEC   02000000   
   #ifndef __O_DIRECT   
   # define __O_DIRECT	 040000   
   #ifndef __O_NOATIME   
   # define __O_NOATIME   01000000   
   #ifndef __O_PATH   
   # define __O_PATH     010000000   
      
      
   I don't know what those are, and I don't know if   
   there are spare bits that won't cause an issue.   
      
   Another possibility would be to have a combination   
   of bits, perhaps an unusual combination, like I   
   assume switching off the access time above, and   
   that will be a hint that it is actually a text   
   mode file. So on Linux access times are no longer   
   a thing for any application I produce - but I don't   
   care about that. What I care is that PDOS/386 has   
   an opportunity to insert CRs.   
      
   Any suggestions?   
      
   Thanks. Paul.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca