Guest User

Untitled

a guest
Feb 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <fcntl.h>
  5. #include <unistd.h>
  6.  
  7. struct _Data {
  8. int id;
  9. char text[30];
  10. };
  11. typedef struct _Data Data;
  12.  
  13. int ouverture(const char* fichier);
  14. int ajoutData(int hdFile, Data* myData);
  15. int listeData(int hdFile);
  16.  
  17. int main (void)
  18. {
  19. int hdFich, choix;
  20. Data myData;
  21.  
  22. hdFich = ouverture("data.bin");
  23.  
  24. do {
  25. printf("\n--- Menu ---\n");
  26. printf("1. Ajouter\n");
  27. printf("2. Lister\n");
  28. printf("3. Quitter\n");
  29. printf("Votre choix: ");
  30. scanf("%d", &choix);
  31.  
  32. switch (choix)
  33. {
  34. case 1:
  35. printf("\n--- Ajout ---\n\n");
  36. printf("id: ");
  37. scanf("%d", &(myData.id));
  38. printf("texte: ");
  39. fflush(stdin);
  40. gets(myData.text);
  41. if(!ajoutData(hdFich, &myData))
  42. printf("Erreur d'ecriture dans le fichie r.\n");
  43. break;
  44. case 2:
  45. printf("\n--- Liste ---\n\n");
  46. listeData(hdFich);
  47. break;
  48. default:
  49. break;
  50. }
  51. }while(choix != 3);
  52.  
  53. if(close(hdFich))
  54. printf("Erreur lors de la fermeture du fichier.\n");
  55. exit(0);
  56. }
  57.  
  58. int ouverture(const char* fichier)
  59. {
  60. int hdFich;
  61.  
  62. if ((hdFich = open(fichier, O_RDWR, 0700)) == -1)
  63. {
  64. printf("Le fichier n'existe pas, creation...\n");
  65.  
  66. if ((hdFich = open(fichier, O_CREAT|O_RDWR, 0700)) == -1)
  67. {
  68. printf("Erreur lors de la creation du fichier.\n");
  69. exit(1);
  70. }
  71. }
  72. return hdFich;
  73. }
  74. int ajoutData(int hdFich, Data* myData)
  75. {
  76. return write(hdFich, myData, sizeof(Data));
  77. }
  78. int listeData(int hdFich)
  79. {
  80. int test;
  81. Data myData;
  82.  
  83. while (read (hdFich, &myData, sizeof(Data)) == sizeof(Data))
  84. {
  85. printf("id: %d\n", myData.id);
  86. printf("texte: %s\n\n", myData.text);
  87. }
  88. return 0;
  89. }
Add Comment
Please, Sign In to add comment