diff --git a/linux_before_main/build.sh b/linux_before_main/build.sh new file mode 100644 index 0000000..9355184 --- /dev/null +++ b/linux_before_main/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Path setup +src=$PWD +cd .. +mkdir -p build +cd build + + +# Build +gcc -fvisibility=hidden $src/linux_before_main.c -o linux_before_main + diff --git a/linux_before_main/linux_before_main.c b/linux_before_main/linux_before_main.c new file mode 100644 index 0000000..0ca3736 --- /dev/null +++ b/linux_before_main/linux_before_main.c @@ -0,0 +1,14 @@ +// define the "before main" function +int x = 0; +__attribute__((constructor)) +static void run_before_main_func(void){ + x = 100; +} + + +// main +#include +int main(){ + printf("x = %d\n", x); + return(0); +} \ No newline at end of file