view liboctave/wrappers/unistd-wrappers.h @ 21949:baeffde5c87d

fix build for Windows systems * file-stat.cc, oct-syscalls.cc, syscalls.cc: Include <ctime>. * sysdep.cc: Include <shellapi.h> for Windows. * lo-sysdep.cc: Include <fcntl.h> and <io.h> for Windows. * wait-wrappers.c (WIFCONTINUED): Define if sys/wait.h does not. * signal-wrappers.c (octave_kill_wrapper): Return -1 if kill is missing. * main.in.cc (prepare_spawn): Move to unistd-wrappers.c. (octave_exec): Eliminate special case for Windows. (main): Display message if exec fails. * unistd-wrappers.h, fcntl-wrappers.h, lo-sysdep.h: Include <sys/types.h> * unistd-wrappers.c (octave_execv_wrapper): Handle Windows implementation here. Free sanitized command vector if spawnv fails. (octave_getegid_wrapper): Return -1 if getegid is missing. (octave_geteuid_wrapper): Return -1 if geteuid is missing. (octave_getgid_wrapper): Return -1 if getgid is missing. (octave_getpgrp_wrapper): Return -1 if getpgrp is missing. (octave_getpid_wrapper): Return -1 if getpid is missing. (octave_getppid_wrapper): Return -1 if getppid is missing. (octave_getuid_wrapper): Return -1 if getuid is missing. (octave_setsid_wrapper): Return -1 if setsid is missing. * configure.ac: Check for setsid. * lo-sysdep.cc (win_popen2): Move to octave-popen2.c. * lo-sysdep.h (win_popen2): Delete decl. (octave_popen2): Delete deprecated function pointer. * octave-popen2, octave-popen2.c (octave_popen2): New arg, ERRMSG. Handle Windows implemenation here. (make_command_string): New static function. * oct-syscalls.cc (octave::sys::popen2): Eliminate special case for Windows. Defined deprecated inline functions for old octave_popen2 interface. * quit.h: Don't include <windows.h>. (w32_sigint_init, w32_raise_final, w32_raise, w32_in_main_thread): Delete decls of undefined and unused functions. * toplev.cc: Include <windows.h>. * sysdep.cc: Include <windows.h> before <tlhelp32.h> and <shellapi.h>.
author John W. Eaton <jwe@octave.org>
date Sat, 18 Jun 2016 10:55:49 -0400
parents 034b15e9c262
children 4caa7b28d183
line wrap: on
line source

/*

Copyright (C) 2016 John W. Eaton

This file is part of Octave.

Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

Octave is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING.  If not, see
<http://www.gnu.org/licenses/>.

*/

#if ! defined (octave_unistd_wrappers_h)
#define octave_unistd_wrappers_h 1

#if ! defined (__cplusplus)
#  include <stdbool.h>
#endif

#include <sys/types.h>

#if defined __cplusplus
extern "C" {
#endif

extern int octave_access_f_ok (void);

extern int octave_access_r_ok (void);

extern int octave_access_w_ok (void);

extern int octave_access_x_ok (void);

extern int octave_access_wrapper (const char *nm, int mode);

extern int octave_chdir_wrapper (const char *nm);

extern int octave_close_wrapper (int fd);

extern const char *octave_ctermid_wrapper (void);

extern int octave_dup2_wrapper (int fd1, int fd2);

extern int octave_execv_wrapper (const char *file, char *const *argv);

extern int octave_execvp_wrapper (const char *file, char *const *argv);

extern pid_t octave_fork_wrapper (void);

extern int octave_ftruncate_wrapper (int fd, off_t sz);

extern char *octave_getcwd_wrapper (char *nm, size_t len);

extern gid_t octave_getegid_wrapper (void);

extern uid_t octave_geteuid_wrapper (void);

extern gid_t octave_getgid_wrapper (void);

extern int octave_gethostname_wrapper (char *nm, size_t len);

extern pid_t octave_getpgrp_wrapper (void);

extern pid_t octave_getpid_wrapper (void);

extern pid_t octave_getppid_wrapper (void);

extern uid_t octave_getuid_wrapper (void);

extern int octave_isatty_wrapper (int fd);

extern int octave_link_wrapper (const char *nm1, const char *nm2);

extern int octave_pipe_wrapper (int *fd);

extern int octave_rmdir_wrapper (const char *nm);

extern pid_t octave_setsid_wrapper (void);

extern int octave_stdin_fileno (void);

extern int octave_stdout_fileno (void);

extern int octave_symlink_wrapper (const char *nm1, const char *nm2);

extern int octave_unlink_wrapper (const char *nm);

extern pid_t octave_vfork_wrapper (void);

extern bool octave_have_fork (void);

extern bool octave_have_vfork (void);

#if defined __cplusplus
}
#endif

#endif