IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

fichier sous linux


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Points : 12
    Points
    12
    Par défaut fichier sous linux
    Voila, le but de mon programme est de poser une serie de questions, puis de générer du code source LaTeX, en l'enregistrant au fur et à mesure dans un fichier nommé texplot.tex.
    Au compilateur, il ne me pose pas de problème, mais c'est quand je veux ouvrir mon fichier (avec gedit), il me dit:
    Impossible d'ouvrir le fichier « /home/razord/texplot.tex » car gedit n'a pas été capable de détecter automatiquement le codage des caractères.
    Voici la source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    //Includes
    #include <stdio.h>
    #include <stdlib.h> 
    #include <unistd.h>
    #include <fcntl.h>
     
    //Declaration des variables globales
    int status = 0;
    char fichierpath[81];
    int fd = 0;
    int ligne = 1;
    char writecar[81];
    char buf[80];
     
    //Fonction present()********************
    //pour la presentation du logiciel
    void present()
    {
    	printf("------------------------------\n");
    	printf("|              TeXPloT          |\n");
    	printf("| version 0.1                   |\n");
    	printf("| par razord et bertou26 |\n");
    	printf("| utilise la lisence GPL    |\n");
    	printf("------------------------------");
    	printf("\n\n");
    }
     
    //Fonction fichierask()*****************
    //demande ou est le fichier d'arriver
    void fichierask()
    {
    	printf("Chemin du fichier texplot.tex:");
    	scanf("%s",fichierpath); //demande de l'emplacement du ficher
    	fd = open (fichierpath, O_CREAT | O_RDWR, 0777); //ouverture du fichier en "read/write"
    	if (fd < 0)
    	{
    		printf("\nImpossible d'ouvrir le fichier texplot.tex !");	
    		getchar();
    		status = 1;
    	}
    	else
    	{
    		printf("\n***Ouverture du fichier reussie.\n");
    	}
    }
     
    //Fonction fichierclose() **************
    //On ferme le fichier proprement
    void fichierclose()
    {
    	close (fd);
    }
     
    //Fonction coordonneefenetre()**********
    //Pour les points bas_gauches et haut_droits
    void coordonneefenetre()
    {
    	char beginpspicture[80];
    	printf("Argumments de \begin{pspicture*}: ");
    	scanf("%s",beginpspicture);
    	buf[80]="hello world !\n"; //On se demande ce que cela fait là mais c'est juste pour un test.
    	write(fd, buf, sizeof buf);
    }
     
    //Fonction main() **********************
    int main()
    {
    	present(); //Ecrit le paragraphe de presentation
    	fichierask(); //Ouvre le fichier concerne (texplot.tex)
    	/*Si la variable globale 'status' est = 1,
    	alors c'est que l'ouverture du fichier a echoue */
    	if (status == 1)
    	{
    		goto fin; //Alors on termine le programme
    	}
    	coordonneefenetre();
    	fichierclose();
    fin:
    	return (0);
    }
    Voila. J'ai dékà posté le code à un amis, il pense qu'il va bien mais qu'il doit y avoir un moyen de donner l'encodage au moment de l'ouverture / creation du fichier.

    Merci d'avance.

    @++

    Razord

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut.
    Je ne connais pas la fonction gedit mais elle suppose peut-être qu'il y a une entête dans les fichiers qui décrit le codage des caractères.
    Je poste pour relever un problème de codage de C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    //Fonction main() **********************
    // le prototype de main est 
    int main(void)
    {
       present(); //Ecrit le paragraphe de presentation
       fichierask(); //Ouvre le fichier concerne (texplot.tex)
       /*Si la variable globale 'status' est = 1,
       alors c'est que l'ouverture du fichier a echoue */
    /* pourquoi utiliser un goto ????
       if (status == 1)
       {
          goto fin; //Alors on termine le programme
       }
       coordonneefenetre();
       fichierclose();
    fin:
    */
       if (status != 1)
       {
         coordonneefenetre();
         fichierclose();
      }
       return (0);
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par Trap D
    Je ne connais pas la fonction gedit mais elle suppose peut-être qu'il y a une entête dans les fichiers qui décrit le codage des caractères.
    gedit n'est pas une fonction C mais un éditeur de texte sous Gnome.

    Pourquoi utiliser les fonctions primitives de bas niveau pour la gestion des fichiers ?
    Utilises plutôt fopen, fclose, fprintf...

    Regardes le contenu de ton fichier de sortie avec cat, more ou vi, tu comprendras peut-être ce qui cloche au niveau de l'encodage.

Discussions similaires

  1. Impossible de locker un fichier sous linux
    Par Peewee dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 23/08/2006, 10h39
  2. Spécifier type de système de fichiers sous linux
    Par rond24 dans le forum Administration système
    Réponses: 4
    Dernier message: 07/03/2006, 20h09
  3. Téléchargement de fichier sous Linux
    Par patrick_lassaly dans le forum Administration système
    Réponses: 1
    Dernier message: 03/01/2006, 11h31
  4. Exclusivité sur un fichier sous linux
    Par ggnore dans le forum Administration système
    Réponses: 4
    Dernier message: 03/11/2004, 09h46
  5. Les fichiers sous linux/windows
    Par Stessy dans le forum Linux
    Réponses: 5
    Dernier message: 05/12/2003, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo