Mercurial > hg > octave-kai > gnulib-hg
annotate lib/readlink.c @ 7304:1c4ed7637c24
Include <config.h> unconditionally.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Thu, 14 Sep 2006 14:18:36 +0000 |
parents | a888c101ff31 |
children | 51d32a83a7df |
rev | line source |
---|---|
4405 | 1 /* Stub for readlink(). |
7304
1c4ed7637c24
Include <config.h> unconditionally.
Bruno Haible <bruno@clisp.org>
parents:
7024
diff
changeset
|
2 Copyright (C) 2003-2006 Free Software Foundation, Inc. |
4405 | 3 |
4 This program is free software; you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 2, or (at your option) | |
7 any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program; if not, write to the Free Software Foundation, | |
5848
a48fb0e98c8c
*** empty log message ***
Paul Eggert <eggert@cs.ucla.edu>
parents:
5396
diff
changeset
|
16 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ |
4405 | 17 |
7304
1c4ed7637c24
Include <config.h> unconditionally.
Bruno Haible <bruno@clisp.org>
parents:
7024
diff
changeset
|
18 #include <config.h> |
4405 | 19 |
20 #include <errno.h> | |
4408 | 21 #include <sys/types.h> |
22 #include <sys/stat.h> | |
5396
d557bf17c020
Make sure size_t is defined.
Bruno Haible <bruno@clisp.org>
parents:
4408
diff
changeset
|
23 #include <stddef.h> |
4405 | 24 |
25 #if !HAVE_READLINK | |
26 | |
27 /* readlink() substitute for systems that don't have a readlink() function, | |
28 such as DJGPP 2.03 and mingw32. */ | |
29 | |
4408 | 30 /* The official POSIX return type of readlink() is ssize_t, but since here |
31 we have no declaration in a public header file, we use 'int' as return | |
32 type. */ | |
33 | |
4405 | 34 int |
4408 | 35 readlink (const char *path, char *buf, size_t bufsize) |
4405 | 36 { |
4408 | 37 struct stat statbuf; |
38 | |
39 /* In general we should use lstat() here, not stat(). But on platforms | |
40 without symbolic links lstat() - if it exists - would be equivalent to | |
41 stat(), therefore we can use stat(). This saves us a configure check. */ | |
42 if (stat (path, &statbuf) >= 0) | |
43 errno = EINVAL; | |
4405 | 44 return -1; |
45 } | |
46 | |
47 #endif |