mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
* filesys.c (scm_fcntl): New function from Roland McGrath.
(scm_init_filesys): New symbols for use with fcntl. * filesys.h: Added prototype.
This commit is contained in:
parent
30000774de
commit
4c1feaa596
2 changed files with 48 additions and 1 deletions
|
@ -927,6 +927,29 @@ scm_input_waiting_p (f, caller)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
SCM_PROC (s_fcntl, "fcntl", 3, 0, 0, scm_fcntl);
|
||||
|
||||
SCM
|
||||
scm_fcntl (port, cmd, value)
|
||||
SCM port;
|
||||
SCM cmd;
|
||||
SCM value;
|
||||
{
|
||||
int rv;
|
||||
|
||||
SCM_ASSERT (SCM_OPFPORTP (port), port, SCM_ARG1, s_fcntl);
|
||||
SCM_ASSERT (SCM_INUMP (cmd), cmd, SCM_ARG2, s_fcntl);
|
||||
SCM_ASSERT (SCM_INUMP (value), value, SCM_ARG3, s_fcntl);
|
||||
|
||||
rv = fileno ((FILE *)SCM_STREAM (port));
|
||||
if (rv != -1)
|
||||
SCM_SYSCALL (rv = fcntl (rv, SCM_INUM (cmd), SCM_INUM (value)));
|
||||
if (rv == -1)
|
||||
scm_syserror (s_fcntl);
|
||||
return SCM_MAKINUM (rv);
|
||||
}
|
||||
|
||||
/* {Symbolic Links}
|
||||
*/
|
||||
|
@ -1108,7 +1131,30 @@ scm_sysintern ("O_NDELAY", scm_long2num (O_NDELAY));
|
|||
scm_sysintern ("O_SYNC", scm_long2num (O_SYNC));
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef F_DUPFD
|
||||
scm_sysintern ("F_DUPFD", scm_long2num (F_DUPFD));
|
||||
#endif
|
||||
#ifdef F_GETFD
|
||||
scm_sysintern ("F_GETFD", scm_long2num (F_GETFD));
|
||||
#endif
|
||||
#ifdef F_SETFD
|
||||
scm_sysintern ("F_SETFD", scm_long2num (F_SETFD));
|
||||
#endif
|
||||
#ifdef F_GETFL
|
||||
scm_sysintern ("F_GETFL", scm_long2num (F_GETFL));
|
||||
#endif
|
||||
#ifdef F_SETFL
|
||||
scm_sysintern ("F_SETFL", scm_long2num (F_SETFL));
|
||||
#endif
|
||||
#ifdef F_GETOWN
|
||||
scm_sysintern ("F_GETOWN", scm_long2num (F_GETOWN));
|
||||
#endif
|
||||
#ifdef F_SETOWN
|
||||
scm_sysintern ("F_SETOWN", scm_long2num (F_SETOWN));
|
||||
#endif
|
||||
#ifdef FD_CLOEXEC
|
||||
scm_sysintern ("FD_CLOEXEC", scm_long2num (FD_CLOEXEC));
|
||||
#endif
|
||||
|
||||
#include "filesys.x"
|
||||
}
|
||||
|
|
|
@ -72,6 +72,7 @@ extern SCM scm_chdir SCM_P ((SCM str));
|
|||
extern SCM scm_getcwd SCM_P ((void));
|
||||
extern SCM scm_select SCM_P ((SCM reads, SCM writes, SCM excepts, SCM secs, SCM msecs));
|
||||
extern int scm_input_waiting_p SCM_P ((FILE *file, char *caller));
|
||||
extern SCM scm_fcntl SCM_P ((SCM port, SCM cmd, SCM value));
|
||||
extern SCM scm_symlink SCM_P ((SCM oldpath, SCM newpath));
|
||||
extern SCM scm_readlink SCM_P ((SCM path));
|
||||
extern SCM scm_lstat SCM_P ((SCM str));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue