Subversion Repositories Kolibri OS

Rev

Rev 4874 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4874 Rev 4921
Line 124... Line 124...
124
#include "local.h"
124
#include "local.h"
Line 125... Line 125...
125
 
125
 
126
FILE *
126
FILE *
127
_DEFUN(_fopen_r, (ptr, file, mode),
127
_DEFUN(_fopen_r, (ptr, file, mode),
128
       struct _reent *ptr _AND
128
       struct _reent *ptr _AND
129
       _CONST char *file _AND
129
       _CONST char *__restrict file _AND
130
       _CONST char *mode)
130
       _CONST char *__restrict mode)
131
{
131
{
132
  register FILE *fp;
132
  register FILE *fp;
133
  register int f;
133
  register int f;
Line 138... Line 138...
138
  if ((fp = __sfp (ptr)) == NULL)
138
  if ((fp = __sfp (ptr)) == NULL)
139
    return NULL;
139
    return NULL;
Line 140... Line 140...
140
 
140
 
141
  if ((f = _open_r (ptr, file, oflags, 0666)) < 0)
141
  if ((f = _open_r (ptr, file, oflags, 0666)) < 0)
142
    {
142
    {
143
      __sfp_lock_acquire (); 
143
      _newlib_sfp_lock_start (); 
144
      fp->_flags = 0;		/* release */
144
      fp->_flags = 0;		/* release */
145
#ifndef __SINGLE_THREAD__
145
#ifndef __SINGLE_THREAD__
146
      __lock_close_recursive (fp->_lock);
146
      __lock_close_recursive (fp->_lock);
147
#endif
147
#endif
148
      __sfp_lock_release (); 
148
      _newlib_sfp_lock_end (); 
149
      return NULL;
149
      return NULL;
Line 150... Line 150...
150
    }
150
    }
Line 151... Line 151...
151
 
151
 
152
  _flockfile (fp);
152
  _newlib_flockfile_start (fp);
153
 
153
 
154
  fp->_file = f;
154
  fp->_file = f;
Line 165... Line 165...
165
#ifdef __SCLE
165
#ifdef __SCLE
166
  if (__stextmode (fp->_file))
166
  if (__stextmode (fp->_file))
167
    fp->_flags |= __SCLE;
167
    fp->_flags |= __SCLE;
168
#endif
168
#endif
Line 169... Line 169...
169
 
169
 
170
  _funlockfile (fp);
170
  _newlib_flockfile_end (fp);
171
  return fp;
171
  return fp;
Line 172... Line 172...
172
}
172
}