If I have a buffer which contains the data of a file, how can I get a file descriptor from it? This is a question derived from how to untar file in memory
I wrote a simple example how to make filedescriptor to a memory area:
#include
#include
#include
char buff[]="qwer\nasdf\n";
int main(){
int p[2]; pipe(p);
if( !fork() ){
for( int buffsize=strlen(buff), len=0; buffsize>len; )
len+=write( p[1], buff+len, buffsize-len );
return 0;
}
close(p[1]);
FILE *f = fdopen( p[0], "r" );
char buff[100];
while( fgets(buff,100,f) ){
printf("from child: '%s'\n", buff );
}
puts("");
}