Commit 93c5c1e
Changed files (3)
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')