mem2swap.c
changeset 138 dff18d1ac2af
parent 113 397270b5d21a
child 139 cb1d3f4cf18e
--- a/mem2swap.c
+++ b/mem2swap.c
@@ -17,6 +17,14 @@
 #define DEFAULT_MEGS 64
 #endif
 
+#ifdef __linux__
+#define CMD_FREE "/usr/bin/free"
+#define CMD_ARGS "-m"
+#elif __unix__
+#define CMD_FREE "/sbin/sysctl"
+#define CMD_ARGS "hw.usermem"
+#endif
+
 int set_limit (int);
 
 int main (int argc, char **argv)
@@ -26,7 +34,7 @@
     long int *p;
     long int *p_new;
 
-    char *args[] = { "/usr/bin/free", "-m", NULL };
+    char *args[] = { CMD_FREE, CMD_ARGS, NULL };
 
     int size = sizeof (*p);
     int megs = DEFAULT_MEGS;
@@ -69,7 +77,7 @@
     pid = fork ();
     switch (pid) {
     case 0:
-        execve ("/usr/bin/free", args, NULL);
+        execve (CMD_FREE, args, NULL);
     case -1:
         perror ("Fork Error");
         return EXIT_FAILURE;