Comment puis-je copier le contenu de argv[] dans un style c string?

Je suis en train d'écrire un programme qui prend plusieurs arguments lors de l'exécution pour ajouter du texte dans un fichier.

Le programme produit une erreur de segmentation lors de l'exécution. Voici le code:

int main(int argc, char* argv[])
{
    //error checking
    if (argc < 1 || argc > 4) {
        cout << "Usage: -c(optional - clear file contents) <Filename>, message to write"    << endl;
        exit(EXIT_FAILURE);
    }

    char* filename[64];
    char* message[256];

    //set variables to command arguments depending if -c option is specificed
    if (argc == 4) {
        strcpy(*filename, argv[2]);
        strcpy(*message, argv[3]);
    } else {
        strcpy(*filename, argv[1]);
        strcpy(*message, argv[2]);
    }

    int fd; //file descriptor 

    fd = open(*filename, O_RDWR | O_CREAT, 00000); //open file if it doesn't exist    then create one
    fchmod(fd, 00000);

    return 0;
}

Je suis encore assez débutant et je vais avoir l'immense difficulté à comprendre c des chaînes de caractères. Quelle est la différence entre char* et char[] et char* []?

Mise à JOUR:

Le code en jette toujours une erreur de segmentation, voici mon nouveau code:

using std::cout;
using std::endl;

 int main(int argc, char* argv[])
 {

//error checking
if (argc < 1 || argc > 4) {
cout << "Usage: -c(optional - clear file contents) <Filename>, message to write"      << endl;
 exit(EXIT_FAILURE);
 }

char filename[64];
char message[256];

 //set variables to command arguments depending if -c option is specificed
 if (argc == 4)
{
strncpy(filename, argv[2], 64);
strncpy(message, argv[3], 256);
}
 else
 {
strncpy(filename, argv[1], 64);
strncpy(message, argv[2], 256);
 }

 int fd; //file descriptor 

 fd = open(filename, O_RDWR | O_CREAT, 00000); //open file if it doesn't exist then create one
 fchmod(fd, 00000);


 return 0;

 }
Vous obtenez des points pour la fourniture d'une tentative au programme; beaucoup de choses à apprendre, mais vous étiez proche.

OriginalL'auteur Scholar | 2013-10-05