[mod.computers.masscomp] "r+" mode doesn't work under RTU 3.1

masscomp-request@soma.UUCP (01/12/87)

Someone came to me with a problem with opening a file for reading and
writing with fopen (file, "r+").  Seems you can't write it.  This is
true in both the att and ucb universes.  It turns out that this is a
System V bug, even though it's in ucb as well.

I found a workaround in the 2.11 news source, file control.c:

#if defined(USG) || defined(MG1)
		/*
		 * U G L Y   K L U D G E
		 * This utter piece of tripe is the only way I know of
		 * to get around the fact that ATT BROKE standard IO
		 * in System 5.2. Basically, you can't open a file for
		 * "r+" and then try and write to it. This hack works
		 * on all "real" USG Unix systems, It will probably
		 * break on some obscure look alike that doesnt use the
		 * real ATT stdio.h
		 * also broken in WCW MG-1 42nix 2.0
		 * Don't blame me, blame ATT. stdio should have
		 * already done the following line for us, but it didn't
		 */
		actfp->_flag |= _IOWRT;
#endif /* USG */

That is, set the write-enable bit manually.
-- 
- Joe Buck 	{hplabs,ihnp4,sun}!oliveb!epimass!jbuck		HASA (A,S)
  Entropic Processing, Inc., Cupertino, California