Mercurial > projects > ldc
diff lphobos/std/c/process.d @ 1:c53b6e3fe49a trunk
[svn r5] Initial commit. Most things are very rough.
author | lindquist |
---|---|
date | Sat, 01 Sep 2007 21:43:27 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lphobos/std/c/process.d Sat Sep 01 21:43:27 2007 +0200 @@ -0,0 +1,86 @@ + +/** + * C's <process.h> + * Authors: Walter Bright, Digital Mars, www.digitalmars.com + * License: Public Domain + * Macros: + * WIKI=Phobos/StdCProcess + */ + +module std.c.process; + +private import std.c.stddef; + +extern (C): + +void exit(int); +void _c_exit(); +void _cexit(); +void _exit(int); +void abort(); +void _dodtors(); +int getpid(); + +int system(char *); + +enum { _P_WAIT, _P_NOWAIT, _P_OVERLAY }; + +int execl(char *, char *,...); +int execle(char *, char *,...); +int execlp(char *, char *,...); +int execlpe(char *, char *,...); +int execv(char *, char **); +int execve(char *, char **, char **); +int execvp(char *, char **); +int execvpe(char *, char **, char **); + + +enum { WAIT_CHILD, WAIT_GRANDCHILD } + +int cwait(int *,int,int); +int wait(int *); + +version (Windows) +{ + uint _beginthread(void function(void *),uint,void *); + + extern (Windows) alias uint (*stdfp)(void *); + + uint _beginthreadex(void* security, uint stack_size, + stdfp start_addr, void* arglist, uint initflag, + uint* thrdaddr); + + void _endthread(); + void _endthreadex(uint); + + int spawnl(int, char *, char *,...); + int spawnle(int, char *, char *,...); + int spawnlp(int, char *, char *,...); + int spawnlpe(int, char *, char *,...); + int spawnv(int, char *, char **); + int spawnve(int, char *, char **, char **); + int spawnvp(int, char *, char **); + int spawnvpe(int, char *, char **, char **); + + + int _wsystem(wchar_t *); + int _wspawnl(int, wchar_t *, wchar_t *, ...); + int _wspawnle(int, wchar_t *, wchar_t *, ...); + int _wspawnlp(int, wchar_t *, wchar_t *, ...); + int _wspawnlpe(int, wchar_t *, wchar_t *, ...); + int _wspawnv(int, wchar_t *, wchar_t **); + int _wspawnve(int, wchar_t *, wchar_t **, wchar_t **); + int _wspawnvp(int, wchar_t *, wchar_t **); + int _wspawnvpe(int, wchar_t *, wchar_t **, wchar_t **); + + int _wexecl(wchar_t *, wchar_t *, ...); + int _wexecle(wchar_t *, wchar_t *, ...); + int _wexeclp(wchar_t *, wchar_t *, ...); + int _wexeclpe(wchar_t *, wchar_t *, ...); + int _wexecv(wchar_t *, wchar_t **); + int _wexecve(wchar_t *, wchar_t **, wchar_t **); + int _wexecvp(wchar_t *, wchar_t **); + int _wexecvpe(wchar_t *, wchar_t **, wchar_t **); +} + +