На самом деле, он, скорее всего, не имел в виду то, что сказал: он, вероятно, имел в виду, что он произнесет заклинание creatс двумя буквами - в конце концов, один уже присутствует. Конечно, неявное сообщение о том, что UNIX оказался таким, каким он должен был быть, без каких-либо существенных изменений, требующих только исправления этой [одной] опечатки.
Дитмар Кюль,
Ответы:
56
Это системный вызов Unix, который создает файл: в командной строке Unix введите, man 2 creatчтобы узнать больше.
Страницы руководства также доступны онлайн в эти дни:
Не только он относится к man 2 creatсистемному вызову. Он также ссылается на устаревшие тенденции экономии на каждом крошечном персонаже, где это возможно, иногда это только сбивает с толку, особенно сейчас, когда ввод и хранение другого персонажа редко становится препятствием.
Я думаю, что в контексте вопроса он имел в виду только creat (). Смысл его в том, что в Unix не было ничего, что он сделал бы иначе, кроме этой маленькой орфографической ошибки в системном вызове для создания файла.
15
@jmucchiello, это не орфографическая ошибка. Это преднамеренное (хотя и нестандартное) сокращение. Это согласуется с использованием тяжелых сокращений , как fcntl, ls, mvи т.д., в общем.
Мэтью Флэшен
6
Согласитесь, но я люблю эти сокращения даже тогда, когда у нас есть туберкулез для хранения :)
tgkprog
2
Клавиши телетайпа трудно нажимать. Было выгодно сохранить несколько писем. Первыми, которые могли быть устранены, были гласные и избыточные согласные.
Erkin Alp Güney,
24
Это относится к системному вызову UNIX для создания новых файлов. Линкеры на некоторых машинах были ограничены идентификаторами не более 6 символов. Видимо, Кен должен был работать с таким агентом , и , следовательно, создать систему вызов был сокращен до созда , чтобы соответствовать этому ограничению. Ирония в том, что творение тоже делает.
Ограничение в 6 символов переведено в 5, так как компилятор (во избежание столкновения пользовательских символов с генерируемыми компилятором) добавляется '_'перед именами пользовательских переменных / функций и старается не использовать их '_'при генерации символов.
vonbrand
3
@vonbrand: Это, кажется, не объясняет, как unlinkили umountмогло существовать, однако, что я думаю, современно creat.
Dolda2000
@ Dolda2000 Ну, вполне возможно, что компоновщик имел это ограничение, а компилятор - нет. Так umountчто столкнулся бы с umounили umounxили как угодно, но имя будет разрешено. Но это чистое предположение :)
Luaan
23
Я опоздал на шесть лет, чтобы ответить, но я полагаю, что дошедшие до нас ответы не соответствуют сути цитаты Томпсона.
Я заклинание сотворил бы с «е».
Кен Томпсон не оплакивает название функции, используемой для открытия и, возможно, создания файла. Скорее, он говорит, что Unix был сделан правильно, то есть нет ничего важного, что должно было быть сделано по-другому.
Тонкое дело, что Unix архитектура звук, и реализация в порядке. Нужно было бы ездить на велосипеде, чтобы найти что-нибудь для улучшения в Unix. Таким образом, очевидна придирка по поводу названия общего системного вызова.
Да, он хочет сказать нам, что архитектура UNIX может быть улучшена в очень крошечных аспектах. Но в основном UNIX сделал это правильно. КСТАТИ. creatэто системный вызов, а не команда CLI.
creat
с двумя буквами - в конце концов, один уже присутствует. Конечно, неявное сообщение о том, что UNIX оказался таким, каким он должен был быть, без каких-либо существенных изменений, требующих только исправления этой [одной] опечатки.Ответы:
Это системный вызов Unix, который создает файл: в командной строке Unix введите,
man 2 creat
чтобы узнать больше.Страницы руководства также доступны онлайн в эти дни:
creat(2)
creat(3p)
.источник
Не только он относится к
man 2 creat
системному вызову. Он также ссылается на устаревшие тенденции экономии на каждом крошечном персонаже, где это возможно, иногда это только сбивает с толку, особенно сейчас, когда ввод и хранение другого персонажа редко становится препятствием.источник
fcntl
,ls
,mv
и т.д., в общем.Это относится к системному вызову UNIX для создания новых файлов. Линкеры на некоторых машинах были ограничены идентификаторами не более 6 символов. Видимо, Кен должен был работать с таким агентом , и , следовательно, создать систему вызов был сокращен до созда , чтобы соответствовать этому ограничению. Ирония в том, что творение тоже делает.
Смотрите также: что означает 9-я заповедь?
источник
'_'
перед именами пользовательских переменных / функций и старается не использовать их'_'
при генерации символов.unlink
илиumount
могло существовать, однако, что я думаю, современноcreat
.umount
что столкнулся бы сumoun
илиumounx
или как угодно, но имя будет разрешено. Но это чистое предположение :)Я опоздал на шесть лет, чтобы ответить, но я полагаю, что дошедшие до нас ответы не соответствуют сути цитаты Томпсона.
Кен Томпсон не оплакивает название функции, используемой для открытия и, возможно, создания файла. Скорее, он говорит, что Unix был сделан правильно, то есть нет ничего важного, что должно было быть сделано по-другому.
Тонкое дело, что Unix архитектура звук, и реализация в порядке. Нужно было бы ездить на велосипеде, чтобы найти что-нибудь для улучшения в Unix. Таким образом, очевидна придирка по поводу названия общего системного вызова.
источник
creat
это системный вызов, а не команда CLI.