Check empty argument lists.
Lint fixes (and include <unistd.h>)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 996ecdb..df4d888 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -57,6 +57,10 @@
 
 #endif /* !SYSV */
 
+#ifndef NO_UNISTD
+#include <unistd.h> /* Take this out if it doesn't exist */
+#endif
+
 #include "allobjects.h"
 #include "modsupport.h"
 
@@ -397,6 +401,8 @@
 	extern int uname PROTO((struct utsname *));
 	struct utsname u;
 	object *v;
+	if (!getnoarg(args))
+		return NULL;
 	if (uname(&u) < 0)
 		return posix_error();
 	v = newtupleobject(5);
@@ -526,6 +532,8 @@
 	object *args;
 {
 	int pid;
+	if (!getnoarg(args))
+		return NULL;
 	pid = fork();
 	if (pid == -1)
 		return posix_error();
@@ -549,7 +557,11 @@
 {
 	if (!getnoarg(args))
 		return NULL;
+#ifdef SYSV
+	return newintobject((long)getpgrp());
+#else
 	return newintobject((long)getpgrp(0));
+#endif
 }
 
 static object *
@@ -657,7 +669,7 @@
 	int n;
 	if (!getstrarg(args, &path))
 		return NULL;
-	n = readlink(path, buf, sizeof buf);
+	n = readlink(path, buf, (int) sizeof buf);
 	if (n < 0)
 		return posix_error();
 	return newsizedstringobject(buf, n);