Dore: Ogre

Странности нашего городка

MEMSET(3)                 Linux Programmer's Manual                MEMSET(3)
NAME        
memset - fill memory with a constant byte
SYNOPSIS        
#include <string.h> void *memset(void *s, int c, size_t n);
DESCRIPTION        
The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c.

Кто-нибудь знает, почему c целоe, если заполняем память байтами?
Tags:
Так если совместимости все равно нет, то какая разница, что делали в старину? Почему в тот момент, когда отказались от совместимости и поменяли семантику мемсета, не поменяли его сигнатуру? Ведь один человек принял оба решения, одновременно? Это и безопаснее было бы - компилятор бы мог предупреждать, что кто-то передает слово туда, где теперь нужен байт.

Edited at 2018-09-28 03:46 pm (UTC)
К тому моменту это был уже точно не один человек, в Позиксе заседали десятки. И я помню все эти бесконечные войны между Позиксом, System V specs и прочими изводами в виде Дековского Ультрикса, БиЭсДи, еще бродящими версиями, основанными на 7 и пр. Совместимость тогда была проблемой, наш код пестрел ifdef-ами на десятки платформ. Даже уже в Штатах в начале 90-х, наши файловые системы должны были работать на нескольких Юниксах - условной компиляции было полно.
В смысле, один человек писал имплементацию мемсета, в байтах, а совсем другой - его декларацию, в словах? Серьезно, что ли?
Да нет, ну не до такой же степени. Сигнатуру брали из какого-нибудь стандарта, благо было из чего выбирать. Потом кто-то подпиливал компилятор под выбранный стандарт. Потом старые программы переставили работать. Потом кто-то вставлял ифдефы в старый код, а совсем другой человек решил править компилятор и третий - библиотечные функции. Тут на Линуса бочку катят, что мол грубый он и к людям невнимателен. А вы этих людей видели???

Скажем так, у меня от тех времен остались советские лагерные ощущения - "не верь, не бойся, не проси". Я никогда не верил написанному, просить было некого, а делать было надо. "Довьерьяй но провьерьяй"
Ну не знаю, я думал, libc пишут люди с седыми бородами, у которых все всегда портабельно, совместимо со всем и заголовки имеют смысл.

Edited at 2018-09-28 04:11 pm (UTC)
В те далекие годы так и было. Мне еще повезло познакомиться с Ритчи на одной из Юзниковских конференций. Я всю эту толпу помню, еще молодой МкКузик бегал с горящими глазами и вальяжный Бил Джой пил мартини в ресторане "Прага".

Был такой хороший фильм советский, там герой вспоминает "Но тут пришел гегемон и все пошло прахом". ЛибСи действительно писали люди с седыми бородами и пока они были у руля и количество версий не зашкаливало, было легче. Потом был период разброда и шатания, потом все вроде опять улеглось. Вы спрашиваете первоначальную мотивацию - я думаю, что она была приблизительно так как тут обсуждается. Потом разброд закончился, люди с седыми бородами ушли на пенсию, умерли и теперь это интересно только археологам. Ну и нам, людям с седыми бородами....