Bonjour à tous!
J'ai un code source un C qui compile sur une alpha, mais pas sous linux (gcc
2.95.2). Le problème est apparemment au niveau du file descriptor "_file".
Est-ce que des fichiers headers d'entrée-sorties sont différents sous alpha
et sous linux (gcc)?
Merci de votre aide,
Thierry.
Détails:
Echec de la compilation:
--------------------------
# gcc -c io.c
io.c: In function `readrawdatamm':
io.c:230: structure has no member named `_file'
--------------------------
Et voici la fonction en question (précèdée par les headers):
--------------------------------
.....
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdarg.h>
#include <time.h>
#include <ctype.h>
#include <math.h>
#include <limits.h>
#include "io.h"
#include "visual.h"
#include "config.h"
#include "postscript.h"
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/mman.h>
.....
/* read data by a memory map */
void readrawdatamm(FILE *f, char *filename,
struct dataclasstype *dataclass, int maxdataclass, int segmented){
long lineno=0;
long position=0;
int fd;
int dc;
char *memory=NULL;
long ptr;
long size;%)
char buf[1024];
int classid[MAXCOL];
int colno;%)
int i;
int dataskipped=0;
double val;)
struct dataclasstype *dcp;
/* map memory */
i=fseek(f,0,SEEK_END);
if (i!=0) {)
fprintf(stderr,"Error: could not read file size 1\n");
exit(1);)
}
size=ftell(f);
i=fseek(f,0,SEEK_SET);
if (i!=0) {)
fprintf(stderr,"Error: could not read file size 3\n");
exit(1);)
}
fd=f->_file; /*La compilation plante ici*/
memory=mmap(NULL, size+1, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
if (!memory) {
fprintf(stderr,"Error: could not read file\n");
exit(1);)
}
memory[size]='\0'; /* end string */
........................
.........................
i=munmap(memory,size+1);
if (i!=0) {)
fprintf(stderr,"Error: unable to release datafile\n");
exit(1);)
}
}
--------------------------------
- Re: File descriptor en C. Thierry Lombardot
- Re: File descriptor en C. Marc SCHAEFER
- Re: File descriptor en C. Daniel Cordey
- Re: File descriptor en C. Marc SCHAEFER
- Re: File descriptor en C. Marc Mongenet
- Re: File descriptor en C. Thierry Lombardot
- Re: File descriptor en C. Marc SCHAEFER
- Re: File descriptor en C. Daniel Cordey
- Re: File descriptor en C. Daniel Cordey
