#include #include "bigloo.h" obj_t my_make_string( int len, unsigned char c ) { obj_t string = malloc( STRING_SIZE + len ); #if( !defined( TAG_STRING ) ) string->string_t.header = MAKE_HEADER( STRING_TYPE, 0 ); #endif string->string_t.length = len; memset( &(string->string_t.char0), c, len ); (&(string->string_t.char0))[ len ] = '\0'; return BSTRING( string ); } obj_t my_get_cwd () { AN_OBJECT; int arg_len = (int)(((long)1024)); char * res; obj_t b_buf = my_make_string(((long)1024), ((unsigned char)' ')); char * c_buf = BSTRING_TO_STRING(b_buf); printf("__bof(c_buf)=%lu\n", __bos(c_buf)); res = (char *)(long)getcwd(c_buf, arg_len); return string_to_bstring(res); } int main (void) { obj_t p; printf("_FORTIFY_SOURCE=%d\n", _FORTIFY_SOURCE); p = my_get_cwd(); printf("%p: %s\n", p, &(p->string_t.char0)); }