source: trunk/libs/newlib/src/newlib/libc/sys/rdos/open.c @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.6 KB
Line 
1/*#######################################################################
2# RDOS operating system
3# Copyright (C) 1988-2006, Leif Ekblad
4#
5# This library is free software; you can redistribute it and/or modify
6# it under the terms of the GNU Lesser General Public License as published
7# by the Free Software Foundation; either version 2.1 of the License, or
8# (at your option) any later version.
9#
10# This library is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU Lesser General Public License for more details.
14#
15# You should have received a copy of the GNU Lesser General Public
16# License along with this library; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18#
19# The author of this program may be contacted at leif@rdos.net
20#
21# open.c                                                               
22# open function implementation
23#
24##########################################################################*/
25
26#include "config.h"
27#include <_ansi.h>
28#include <_syslist.h>
29#include <fcntl.h>
30#include <errno.h>
31#include "rdos.h"
32#include <stdarg.h>
33
34int open(const char *file, int flags, ...)
35{
36        int handle;
37        int pos;
38
39        if (flags & O_CREAT)
40                handle = RdosCreateFile(file, flags);
41        else
42                handle = RdosOpenFile(file, flags);
43
44        if (handle >= 0)
45        {
46                if (flags & O_APPEND)
47                {
48                        pos = RdosGetFileSize(handle);
49                        RdosSetFilePos(handle, pos);
50                }
51
52                if (flags & O_TRUNC)
53                        RdosSetFileSize(handle, 0);
54       
55                return handle;
56        }
57        else
58                return -1;
59}
Note: See TracBrowser for help on using the repository browser.