Отчасти они, вобщем-то, правы - зачем процессу больше 252 fd? Если так дофига файлов открыть надо - значит, софтина кривая, давно пора хранилище в БД перенесть.
There is a bug in locate.c of Findutils that causes a segmentation fault to occur on very long path names. The problem is caused by the get_short() function calculating negative numbers incorrectly. This patch corrects this bug.
Как оказалось и в этот, и в другие разы, патчи проблему не лечат. До сих пор неизвестно, где ошибка.
Меня в свое время убила имплементация STDIO в одной из версий libc для макинтоша. там был FILE files[256], хэндлер был индексом там, а open - wrapper-ом поверх fopen
это известная штука, и этому комментарию в stdio.h не меньше 20 лет. более того, этот char обычно трактуется как signed, и дескрипторов тогда вообще не больше 128.
можно в принципе написать свой fopen(), который будет отдавать заранее зарезервированный дескриптор вместо полученного >256. понятно, что если одновременно используется больше 256 дескрипторов, то после каждого такого fopen() придётся делать fclose().
fearan
2006-02-07 15:25 (местное)
Отчасти они, вобщем-то, правы - зачем процессу больше 252 fd? Если так дофига файлов открыть надо - значит, софтина кривая, давно пора хранилище в БД перенесть.
А всякую почту держать на солярисе - моветон :-)
tobotras
2006-02-07 19:56 (местное)
(Анонимно)
2006-02-07 22:14 (местное)
(85.140.252.25)
fearan
2006-02-08 12:23 (местное)
tobotras
2006-02-08 13:03 (местное)
fearan
2006-02-08 13:43 (местное)
Впрочем, я в сях - как свинья в апельсинах :-)
tobotras
2006-02-08 14:26 (местное)
(Как в сях, так и в других языках, это свойство Юникса.)
gt
2006-02-07 15:29 (местное)
tobotras
2006-02-07 15:34 (местное)
Если бы!
gt
2006-02-07 15:58 (местное)
There is a bug in locate.c of Findutils that causes a segmentation fault to occur on very long path names. The problem is caused by the get_short() function calculating negative numbers incorrectly. This patch corrects this bug.
Как оказалось и в этот, и в другие разы, патчи проблему не лечат. До сих пор неизвестно, где ошибка.
А чего -- критично?
poige
2006-02-11 10:46 (местное)
msh
2006-02-07 18:05 (местное)
avk
2006-02-07 19:01 (местное)
avk
2006-02-07 19:06 (местное)
unsigned char _file; /* UNIX System file descriptor */
в stdio_impl.h в 5.7..
tobotras
2006-02-07 19:09 (местное)
Один черт, больше 255 не лезет :)
ktotam
2006-02-07 19:43 (местное)
можно в принципе написать свой fopen(), который будет отдавать заранее зарезервированный дескриптор вместо полученного >256. понятно, что если одновременно используется больше 256 дескрипторов, то после каждого такого fopen() придётся делать fclose().
иначе -- только open()
tobotras
2006-02-07 19:54 (местное)
Вообще -- не понимаю, на кой черт столько лет тащить за собой явный баг :(
ktotam
2006-02-07 20:20 (местное)
ну точно:
что-то мне говорит, что оно из seventh edition идёт.)