#include #include #include #include struct article_type { int code; char nom[30]; int quantite; }; void saisie(struct article_type *p_element) { printf ("saisir un code, un nom et une quantite\n"); scanf ("%d",&((*p_element).code)); scanf ("%s",&((*p_element).nom)); scanf ("%d",&((*p_element).quantite)); } void affichage(struct article_type element) { printf ("Code -> %d\n",element.code); printf ("Nom -> %s\n",element.nom); printf ("Quantite -> %d\n",element.quantite); } int ouverture(char *p_nom, int mode, int droits) { return (open(p_nom, mode ,droits)); } int fermeture (int descripteur) { return (close(descripteur)); } int ecriture (int descripteur, struct article_type element) { return (write(descripteur, &element, sizeof(element) )); } int lecture (int descripteur, struct article_type *element) { return (read(descripteur, element, sizeof(*element))); } int main (void) { struct article_type donne1[100], donne1_[100]; int fd1, fd2; int i,n,m; //Creation du fichier donnees 1 printf ("combien voulez vous saisir d'article dans le fichier donnees1.dat : \n"); scanf ("%d",&m); fd1=ouverture("donnees1.dat", O_WRONLY|O_CREAT, 0644); for (i=0; i < m ; i++) { saisie (&donne1[i]); ecriture (fd1, donne1[i]); } fermeture(fd1); fd1=ouverture("donnees1.dat", O_RDONLY, 0644); printf ("Affichage du fichier donnees1.dat\n"); for (i=0; i < m ; i++) { lecture(fd1, &donne1_[i]); affichage(donne1_[i]); } //Creation du fichier donnes 2 printf ("combien voulez vous saisir d'article dans le fichier donnees2.dat : \n"); scanf ("%d",&n); fd2=ouverture("donnees2.dat", O_WRONLY|O_CREAT, 0644); for (i=0; i < n ; i++) { saisie (&donne1[i]); ecriture (fd2, donne1[i]); } fermeture(fd2); fd2=ouverture("donnees2.dat", O_RDONLY, 0644); printf ("Affichage du fichier donnees2.dat\n"); for (i=0; i < n ; i++) { lecture(fd2, &donne1_[i]); affichage(donne1_[i]); } return (0); }