FIRST CODE
Code:
#include<stdlib.h>
#include<stdio.h>
int main()
{
int n=1;
char *cmd="pwd";
char *buffer=(char *)calloc(sizeof(char),256);
FILE *f=(FILE *)popen(cmd,"r");
printf("\nOutput\n");
while(fgets(buffer,sizeof buffer,f))
{
puts(buffer);
}
fclose(f);
return 0;
}
Output
/ho
me/
smi
t/t
emp
TRY 2 :
Code:
#include<stdlib.h>
#include<stdio.h>
int main()
{
int n=1;
char *cmd="pwd";
char buffer[256];
FILE *f=(FILE *)popen(cmd,"r");
printf("\nOutput\n");
while(fgets(buffer,sizeof buffer,f))
{
puts(buffer);
}
fclose(f);
return 0;
}
Output
/home/smit/temp
What is the diff between buffer[256] and *buffer=(char *)calloc(sizeof(char),256); ?
and why new line in output ??