Commit 93c5c1e

mo khan <mo@mokhan.ca>
2014-10-24 20:54:48
update c greet function to return string instead of write to stdout. main
1 parent fca6316
greeting.c
@@ -1,11 +1,19 @@
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
 
-void greet(char *name) {
-  printf("Hello %s\n", name);
+static const char* alias_name = "ALTER_EGO";
+
+char* greet(char* name) {
+  char* alias = getenv(alias_name);
+  char* buffer = (char*)malloc(128);
+  snprintf(buffer, 128, "Hello %s!\n", alias == NULL ? name : alias);
+  return buffer;
 }
 
 int main(int argc, const char *argv[])
 {
-  greet("mo");
+  printf("%s\n", greet("mo"));
   return 0;
 }
greeting.h
@@ -1,2 +1,1 @@
-
 void greet(char *name);
greeting.rb
@@ -3,7 +3,7 @@ require 'ffi'
 class Greeting
   extend FFI::Library
   ffi_lib 'greeting'
-  attach_function :greet, [:string], :int
+  attach_function :greet, [:string], :string
 end
 
-Greeting.greet('mo')
+puts Greeting.greet('mo')