Kaydet (Commit) 3b06619e authored tarafından Guido van Rossum's avatar Guido van Rossum

Added popen().

Added getmtime() function for use by ".pyc" processing.
üst c405b7b2
......@@ -427,7 +427,7 @@ posix_utime(self, args)
#ifndef MSDOS
/* Process Primitives */
/* Process operations */
static object *
posix__exit(self, args)
......@@ -544,6 +544,26 @@ posix_kill(self, args)
return None;
}
static object *
posix_popen(self, args)
object *self;
object *args;
{
extern int pclose PROTO((FILE *));
object *name, *mode;
FILE *fp;
if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 2 ||
!is_stringobject(name = gettupleitem(args, 0)) ||
!is_stringobject(mode = gettupleitem(args, 1))) {
err_setstr(TypeError, "open() requires 2 string arguments");
return NULL;
}
fp = popen(getstringvalue(name), getstringvalue(mode));
if (fp == NULL)
return posix_error();
return newopenfileobject(fp, name, mode, pclose);
}
static object *
posix_wait(self, args) /* Also waitpid() */
object *self;
......@@ -644,6 +664,7 @@ static struct methodlist posix_methods[] = {
{"getpid", posix_getpid},
{"getppid", posix_getppid},
{"kill", posix_kill},
{"popen", posix_popen},
{"wait", posix_wait},
#endif
#ifndef NO_LSTAT
......@@ -675,6 +696,21 @@ initposix()
fatal("can't define posix.error");
}
/* Function used elsewhere to get a file's modification time */
long
getmtime(path)
char *path;
{
struct stat st;
if (stat(path, &st) != 0)
return -1;
else
return st.st_mtime;
}
#ifdef MSDOS
/* A small "compatibility library" for TurboC under MS-DOS */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment