diff options
| author | mo khan <mo@mokhan.ca> | 2014-10-24 14:54:48 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-10-24 14:54:48 -0600 |
| commit | 93c5c1eda1856a3aaed4a506215e5110a69049a1 (patch) | |
| tree | 60fc51a8b9ed47e1b4d1313c4858f19ceaafece0 | |
| parent | fca63165ad881a2774b503154a2bdc424ff8106b (diff) | |
update c greet function to return string instead of write to stdout.main
| -rw-r--r-- | greeting.c | 14 | ||||
| -rw-r--r-- | greeting.h | 1 | ||||
| -rw-r--r-- | greeting.rb | 4 |
3 files changed, 13 insertions, 6 deletions
@@ -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; } @@ -1,2 +1 @@ - void greet(char *name); diff --git a/greeting.rb b/greeting.rb index d5ddf44..a0b31a2 100644 --- a/greeting.rb +++ b/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') |
