×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

how to dynamically create multiple files

how to dynamically create multiple files

how to dynamically create multiple files

(OP)
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

RE: how to dynamically create multiple files

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.

RE: how to dynamically create multiple files

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("Enter file names, CTRL-D to quit\n");

    while (NULL!=fgets(fname,sizeof buf,stdin)) {
        if (NULL!=strrchr(fname,'\n')) {
            fname[strlen(fname)-1]='\0';
        }
        if (NULL==(fp=fopen(fname,"w")) {
            fprintf(stderr,"Failed to open %s\n",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
http://home.earthlink.net/~bobbitts

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close