Write a program that prints “javaabhigyan” with empty main() function.You are not allowed to write anything in main().
1.) One way of doing this is to apply GCC constructor attribute to a function so that it executes before main()
#include <stdio.h>
/* Apply the constructor attribute to myStartupFun()
so that it is executed before main() */
void myStartupFun(void) __attribute__((constructor));
/* implementation of myStartupFun */
void myStartupFun(void)
{
printf("javaabhigyan");
}
int main()
{
}
Output:
javaabhigyan
2.) In linux, just override the default definition of _start() function so that it would work as a custom startup code. See this article to understand more.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
}
// _start() function
void _start(void)
{
printf("javaabhigyan");
// Call main() function
int var = main();
exit(var);
}
Now compile this by following command
gcc -nostartfiles -o file file.c
Output:
javaabhigyan
0 comments:
Post a Comment