nORKy Grmmph... | voici un code qui map un fichier en mémoire :
Code :
- char *do_redirect(void)
- {
- static char *buff = NULL;
- char *s;
-
- if (buff == NULL) {
- int fd;
- struct stat stat;
- syslog(LOG_INFO, "Reading redirect.html..." );
- fd = open("./redirect.html", O_RDONLY);
- fstat(fd, &stat);
- syslog(LOG_INFO, "mapping redirect.html..." );
- buff = mmap(0, stat.st_size, PROT_READ, MAP_SHARED, fd, 0);
- syslog(LOG_INFO, "closing..." );
- close(fd);
- }
- syslog(LOG_INFO, "Sending redirect.html..." );
- s = strdup(buff);
- syslog(LOG_INFO, "dupping..." );
- return (s);
- }
|
Ce code est dans une application qui se met en deamon (avec la fonction deamon).
Lorsque l'application N'EST PAS en deamon, aucun problème.
Par contre, si je la mets en deamon, mon application à l'air de s'arrete au niveau de mon strdup (le log "dupping..." n'apparait pas et l'application n'est en mémoire)
Quelqu'un a t-il une explication ? Cela viendrait-il de mon mmap ??
Merci Message édité par nORKy le 05-02-2007 à 11:03:05
|