diff --git a/Task 8 - Invoking External Programs Using system() versus execve()/message.txt b/Task 8 - Invoking External Programs Using system() versus execve()/message.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e965047ad7c57865823c7d992b1d046ea66edf78
--- /dev/null
+++ b/Task 8 - Invoking External Programs Using system() versus execve()/message.txt	
@@ -0,0 +1 @@
+Hello
diff --git a/Task 8 - Invoking External Programs Using system() versus execve()/task8.c b/Task 8 - Invoking External Programs Using system() versus execve()/task8.c
new file mode 100644
index 0000000000000000000000000000000000000000..96137635864db15c3723d657e59fc6f28cba93ab
--- /dev/null
+++ b/Task 8 - Invoking External Programs Using system() versus execve()/task8.c	
@@ -0,0 +1,23 @@
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+int main(int argc, char *argv[])
+{
+  char *v[3];
+  char *command;
+  if(argc < 2) {
+    printf("Please type a file name.\n");
+    return 1;
+ }
+ v[0] = "/bin/cat"; v[1] = argv[1]; v[2] = NULL;
+ command = malloc(strlen(v[0]) + strlen(v[1]) + 2);
+ sprintf(command, "%s %s", v[0], v[1]);
+ /*
+ * Use only one of the following
+ * commands in each test.
+ */ 
+// system(command);
+  execve(v[0], v, NULL);
+ return 0;
+}