Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

how to dynamically create multiple files

Status
Not open for further replies.

Keys

IS-IT--Management
Apr 11, 2001
1
US
Hi,

I need help on creating create multiple files dynamically, meaning, creating a file when i need to write in it, then move to another file to write some other things...

because FILE *'s need to be declared ahead of time... i don't know how to create this recursively... I don't know how many files i need to create until run time.

Thank you for any suggestion!
k
 
Simple way:
Create static array with ptr to FILE arguments, and realloc this array when you need. And init two static integers, one to control array size, other - for current file in use.
 
How exactly is it that you determine the file names during run time? Read them from a file? Get them from a user? What?

You can reuse a FILE variable. Below is some basic code for getting the file names from a user.

/**** Untested ****/

#include <stdio.h>
#include <string.h>

int main(void)
{
FILE *fp;
char fname[FILENAME_MAX+1];

printf(&quot;Enter file names, CTRL-D to quit\n&quot;);

while (NULL!=fgets(fname,sizeof buf,stdin)) {
if (NULL!=strrchr(fname,'\n')) {
fname[strlen(fname)-1]='\0';
}
if (NULL==(fp=fopen(fname,&quot;w&quot;)) {
fprintf(stderr,&quot;Failed to open %s\n&quot;,fname);
continue;
}
/* Do some stuff with the file */
}
return 0;
}

Is this similar to what you want to do or did I misunderstand the intent of your question?

HTH,

Russ
bobbitts@hotmail.com
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top