summaryrefslogtreecommitdiff
path: root/ace/OS_NS_unistd.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/OS_NS_unistd.h')
-rw-r--r--ace/OS_NS_unistd.h264
1 files changed, 262 insertions, 2 deletions
diff --git a/ace/OS_NS_unistd.h b/ace/OS_NS_unistd.h
index fc532b41367..51f67f62f74 100644
--- a/ace/OS_NS_unistd.h
+++ b/ace/OS_NS_unistd.h
@@ -1,4 +1,264 @@
// -*- C++ -*-
-// $Id$
-// This is a placeholder.
+//=============================================================================
+/**
+ * @file OS_NS_unistd.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author Jesper S. M|ller<stophph@diku.dk>
+ * @author and a cast of thousands...
+ *
+ * Originally in OS.h.
+ */
+//=============================================================================
+
+#ifndef ACE_OS_NS_UNISTD_H
+# define ACE_OS_NS_UNISTD_H
+
+# include /**/ "ace/pre.h"
+
+# include "ace/config-all.h"
+
+# if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+# endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/os_include/os_unistd.h"
+#include "ace/Time_Value.h"
+#include "ace/os_include/os_stdio.h"
+
+// This should go in os_unistd.h, but since we don't yet implement any code
+// at that level, we put it here. It used to be in OS.i.
+#if defined (ACE_NEEDS_FTRUNCATE)
+extern "C" ACE_Export int ftruncate (ACE_HANDLE handle, long len);
+#endif /* ACE_NEEDS_FTRUNCATE */
+
+namespace ACE_OS {
+
+ int access (const char *path, int amode);
+
+#if defined (ACE_HAS_WCHAR)
+ int access (const wchar_t *path, int amode);
+#endif /* ACE_HAS_WCHAR */
+
+ unsigned int alarm (u_int secs);
+
+ int allocation_granularity (void);
+
+ // used by ARGV::argv_to_string() and ACE_OS::fork_exec()
+ int argv_to_string (ACE_TCHAR **argv,
+ ACE_TCHAR *&buf,
+ int substitute_env_args = 1);
+
+#if !defined (ACE_LACKS_CHDIR)
+ int chdir (const char *path);
+
+#if defined (ACE_HAS_WCHAR)
+ int chdir (const wchar_t *path);
+#endif /* ACE_HAS_WCHAR */
+#endif /* ACE_LACKS_CHDIR */
+
+ int close (ACE_HANDLE handle);
+
+ ACE_HANDLE dup (ACE_HANDLE handle);
+
+ int dup2 (ACE_HANDLE oldfd,
+ ACE_HANDLE newfd);
+
+ int execl (const char *path,
+ const char *arg0, ...);
+
+ int execle (const char *path,
+ const char *arg0, ...);
+
+ int execlp (const char *file,
+ const char *arg0, ...);
+
+ int execv (const char *path,
+ char *const argv[]);
+
+ int execve (const char *path,
+ char *const argv[],
+ char *const envp[]);
+
+ int execvp (const char *file,
+ char *const argv[]);
+
+ //@{
+ /// Forks and exec's a process in a manner that works on Solaris and
+ /// NT. argv[0] must be the full path name to the executable.
+ pid_t fork (void);
+
+ // not in susv3
+ pid_t fork (const ACE_TCHAR *program_name);
+
+ pid_t fork_exec (ACE_TCHAR *argv[]);
+
+ //@}
+
+ int fsync (ACE_HANDLE handle);
+
+ int ftruncate (ACE_HANDLE,
+ off_t);
+
+ ACE_TCHAR *getcwd (ACE_TCHAR *, size_t);
+
+ gid_t getgid (void);
+
+ int getopt (int argc,
+ char *const *argv,
+ const char *optstring);
+
+ int getpagesize (void);
+
+ pid_t getpgid (pid_t pid);
+
+ pid_t getpid (void);
+
+ pid_t getppid (void);
+
+ uid_t getuid (void);
+
+ // should call gethostname()
+ int hostname (char *name,
+ size_t maxnamelen);
+
+#if defined (ACE_HAS_WCHAR)
+ int hostname (wchar_t *name,
+ size_t maxnamelen);
+#endif /* ACE_HAS_WCHAR */
+
+ int isatty (int handle);
+
+#if defined (ACE_WIN32)
+ int isatty (ACE_HANDLE handle);
+#endif /* ACE_WIN32 */
+
+ off_t lseek (ACE_HANDLE handle,
+ off_t offset,
+ int whence);
+
+#if defined (ACE_HAS_LLSEEK) || defined (ACE_HAS_LSEEK64)
+ ACE_LOFF_T llseek (ACE_HANDLE handle, ACE_LOFF_T offset, int whence);
+#endif /* ACE_HAS_LLSEEK */
+
+ /// Get the number of CPUs configured in the machine.
+ long num_processors (void);
+
+ /// Get the number of CPUs currently online.
+ long num_processors_online (void);
+
+ int pipe (ACE_HANDLE handles[]);
+
+ ssize_t pread (ACE_HANDLE handle,
+ void *buf,
+ size_t nbyte,
+ off_t offset);
+
+ ssize_t pwrite (ACE_HANDLE handle,
+ const void *buf,
+ size_t nbyte,
+ off_t offset);
+
+ ssize_t read (ACE_HANDLE handle,
+ void *buf,
+ size_t len);
+
+ ssize_t read (ACE_HANDLE handle,
+ void *buf,
+ size_t len,
+ ACE_OVERLAPPED *);
+
+ /**
+ * Receive <len> bytes into <buf> from <handle> (uses the
+ * <ACE_OS::read> call, which uses the <read> system call on UNIX
+ * and the <ReadFile> call on Win32). If errors occur, -1 is
+ * returned. If EOF occurs, 0 is returned. Whatever data has been
+ * read will be returned to the caller through<bytes_transferred>.
+ *
+ */
+ ssize_t read_n (ACE_HANDLE handle,
+ void *buf,
+ size_t len,
+ size_t *bytes_transferred = 0);
+
+ int readlink (const char *path,
+ char *buf,
+ size_t bufsiz);
+
+ void *sbrk (int brk);
+
+ int setgid (gid_t);
+
+ int setpgid (pid_t pid, pid_t pgid);
+
+ int setregid (gid_t rgid, gid_t egid);
+
+ int setreuid (uid_t ruid, uid_t euid);
+
+ pid_t setsid (void);
+
+ int setuid (uid_t);
+
+ int sleep (u_int seconds);
+
+ int sleep (const ACE_Time_Value &tv);
+
+ // used by ARGV::string_to_argv
+ int string_to_argv (ACE_TCHAR *buf,
+ int &argc,
+ ACE_TCHAR **&argv,
+ int substitute_env_args = 1);
+
+ long sysconf (int);
+
+ // not in susv3
+ long sysinfo (int cmd,
+ char *buf,
+ long count);
+
+ int truncate (const ACE_TCHAR *filename, off_t length);
+
+ u_int ualarm (u_int usecs,
+ u_int interval = 0);
+
+ u_int ualarm (const ACE_Time_Value &tv,
+ const ACE_Time_Value &tv_interval = ACE_Time_Value::zero);
+
+ int unlink (const ACE_TCHAR *path);
+
+ ssize_t write (ACE_HANDLE handle,
+ const void *buf,
+ size_t nbyte);
+
+ ssize_t write (ACE_HANDLE handle,
+ const void *buf,
+ size_t nbyte,
+ ACE_OVERLAPPED *);
+
+ /**
+ * Send <len> bytes from <buf> to <handle> (uses the <ACE_OS::write>
+ * calls, which is uses the <write> system call on UNIX and the
+ * <WriteFile> call on Win32). If errors occur, -1 is returned. If
+ * EOF occurs, 0 is returned. Whatever data has been transmitted
+ * will be returned to the caller through <bytes_transferred>.
+ */
+ ssize_t write_n (ACE_HANDLE handle,
+ const void *buf,
+ size_t len,
+ size_t *bytes_transferred = 0);
+
+} /* namespace ACE_OS */
+
+# if defined (ACE_HAS_INLINED_OSCALLS)
+# if defined (ACE_INLINE)
+# undef ACE_INLINE
+# endif /* ACE_INLINE */
+# define ACE_INLINE inline
+# include "ace/OS_NS_unistd.inl"
+# endif /* ACE_HAS_INLINED_OSCALLS */
+
+# include /**/ "ace/post.h"
+#endif /* ACE_OS_NS_UNISTD_H */