/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1985-2011 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* David Korn <dgk@research.att.com> *
* Phong Vo <kpv@research.att.com> *
* *
***********************************************************************/
#include "sfhdr.h"
/* Fundamental function to create a new stream.
** The argument flags defines the type of stream and the scheme
** of buffering.
**
** Written by Kiem-Phong Vo.
*/
#if __STD_C
#else
int flags; /* type of file stream */
#endif
{
SFONCE(); /* initialize mutexes */
sflags = 0;
if((f = oldf) )
}
{ /* only allow SF_STATIC to be already closed */
}
else
{ /* reopening an open stream, close it first */
SFCLOSE(f) < 0 )
}
if(!f->data)
}
}
if(!f)
{ /* reuse a standard stream structure if possible */
if(f)
}
}
}
if(!f)
}
}
/* create a mutex */
if(!f->mutex)
/* stream type */
}
if(_Sfnotify)
return f;
}