tobotras: (unix)
[personal profile] tobotras
http://avnik.livejournal.com/29887.html

Комментарий из определения FILE в stdio.h:

   char	_file;		/* should be short */


Слов нет, одни эмоции.

Date: 2006-02-07 12:25 pm (UTC)
From: [identity profile] fearan.livejournal.com
Бесподобно!

Отчасти они, вобщем-то, правы - зачем процессу больше 252 fd? Если так дофига файлов открыть надо - значит, софтина кривая, давно пора хранилище в БД перенесть.

А всякую почту держать на солярисе - моветон :-)

Date: 2006-02-07 07:14 pm (UTC)
From: (Anonymous)
сервера на stdio никто в здравом уме не пишет // maxcom

Date: 2006-02-08 09:23 am (UTC)
From: [identity profile] fearan.livejournal.com
А что, моя дурак, и сокеты AF_INET тоже через fd работают?

Date: 2006-02-08 10:43 am (UTC)
From: [identity profile] fearan.livejournal.com
Дык этта... Сокет-то получается другого типа, нежели файл, да? Тип-то по-другому описан?

Впрочем, я в сях - как свинья в апельсинах :-)

Date: 2006-02-07 12:29 pm (UTC)
From: [identity profile] gt.livejournal.com
Для меня большим шоком было то, что проблема с длинным путем в locate/find до сих пор не решена (с 1994 года никто практически не трогал код).

Если бы!

Date: 2006-02-07 12:58 pm (UTC)
From: [identity profile] gt.livejournal.com
http://archive.linuxfromscratch.org/lfs-museum/4.1/LFS-BOOK-4.1-HTML/chapter06/findutils.html

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.

Как оказалось и в этот, и в другие разы, патчи проблему не лечат. До сих пор неизвестно, где ошибка.

А чего -- критично?

Date: 2006-02-11 07:46 am (UTC)
From: [identity profile] poige.livejournal.com
Финансируйте. ;-)

Date: 2006-02-07 03:05 pm (UTC)
From: [identity profile] msh.livejournal.com
Меня в свое время убила имплементация STDIO в одной из версий libc для макинтоша. там был FILE files[256], хэндлер был индексом там, а open - wrapper-ом поверх fopen

Date: 2006-02-07 04:01 pm (UTC)
avk999: (unix)
From: [personal profile] avk999
ой.

Date: 2006-02-07 04:06 pm (UTC)
avk999: (Default)
From: [personal profile] avk999
это в каком солярисе?
unsigned char _file; /* UNIX System file descriptor */
в stdio_impl.h в 5.7..

Date: 2006-02-07 04:43 pm (UTC)
From: [identity profile] ktotam.livejournal.com
это известная штука, и этому комментарию в stdio.h не меньше 20 лет. более того, этот char обычно трактуется как signed, и дескрипторов тогда вообще не больше 128.

можно в принципе написать свой fopen(), который будет отдавать заранее зарезервированный дескриптор вместо полученного >256. понятно, что если одновременно используется больше 256 дескрипторов, то после каждого такого fopen() придётся делать fclose().

иначе -- только open()

Date: 2006-02-07 05:20 pm (UTC)
From: [identity profile] ktotam.livejournal.com
это называется brain damage.
ну точно:
/* @(#) stdio.h 1.2 86/10/07 SMI; from UCB 1.4 06/30/83 */

# ifndef FILE
#define BUFSIZ  1024
#define _SBFSIZ 8
extern struct _iobuf {
       int    _cnt;
       unsigned char *_ptr;
       unsigned char *_base;
       int    _bufsiz;
       short  _flag;
       char   _file;          /* should be short */
} _iob[];

что-то мне говорит, что оно из seventh edition идёт.)

Profile

tobotras: (Default)
tobotras

December 2024

S M T W T F S
123 4567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 12th, 2026 11:50 am
Powered by Dreamwidth Studios