/* Include(s) lié(s) à l'utilisation d'appels système d'accès au fichier */ #include #include #include #include #include #include #include #include /* Taille cible du fichier qu'on souhaite obtenir = 100 Mio */ /* ATTENTION ! */ /* Quand on parle de la capacité d'un disque, 1Mo = 1.000.000 octets */ /* En revanche, quand on parle de mémoire, 1 Mo = 1.048.576 octets */ /* Pour éviter les ambiguïtés, il vaudrait mieux utiliser la notation */ /* Mio avec : */ /* 1 Mio (ou MMo) = 1024 Kio (ou KKo) = 1024 * 1024 octets = */ /* 1<<20 octets = 1048576 octets */ /* (cf. http://physics.nist.gov/cuu/Units/binary.html) */ #define TAILLEFINALE (100 * (1<<20)) #define TAILLE_GLOBALE_BUFFER 8192 int main(int argc, char *argv[]) { /* Déclaration de la variable contenant le descripteur de fichier */ /* manipulé */ int fd; /* Autres déclarations */ size_t tailleBuf; int i; struct iovec *iov; int iovcnt; if (argc != 2) { printf("USAGE = pw tailleBuffer\n"); exit(1); } tailleBuf = atoi(argv[1]); /* On initialise la structure qu'on va donner a manger a writev */ iovcnt = TAILLE_GLOBALE_BUFFER / tailleBuf; iov = calloc(iovcnt, sizeof(struct iovec)); for (i=0 ; i