Here is source code of the C Program to display its own source code as its output.The C program is successfully compiled and run on a Linux system.The output of this program is given below.
Though this problem seems complex but, the concept behind this program is very simple; display the content from the same file you are writing the source code.
A predefined macro __FILE__ contains the location of a C programming file, it is working on.
For example:
#include <stdio.h>
int main(){
printf("%s",__FILE__);
}
The output of this program is the location of this C programming file.
C program to display its own source code as output
#include <stdio.h>
int main() {
FILE *fp;
char c;
fp = fopen(__FILE__,"r");
do {
c = getc(fp);
putchar(c);
}
while(c != EOF);
fclose(fp);
return 0;
}
Output on linux system
Output:
$ cc pgm39.c
$ a.out
/*
* C Program to display its own source code as its output
*/
#include <stdio.h>
int main()
{
FILE *fp;
char ch;
fp = fopen(__FILE__,"r");
do
{
ch = getc(fp);
putchar(ch);
}
while (ch != EOF);
fclose(fp);
return 0;
}
This program displays the content of this particular C programming file(source code) because __FILE__ contains the location of this C programming file in a string