The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust, opennews (??), 06-Июн-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


12. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +5 +/
Сообщение от oficsu (ok), 06-Июн-23, 11:53 
Набор любых байтов, кроме \0, очевидно. Это вообще единственный корректный способ обработки имён файлов с точки зрения программы, всё остальное следует отдать на откуп системе и не делать лишних предположений о том, что вне зоны твоей ответственности и контроля
Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  –3 +/
Сообщение от Шарп (ok), 06-Июн-23, 12:06 
>очевидно

Нет. Имена файлов читают люди, поэтому к ним должны предъявляться соответствующие требования. Ни для чего другого имена файлов не предназначены. В ином случае никто бы текстовые кодировки для путей в ФС не использовал, а использовал числовые id.

Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +1 +/
Сообщение от Аноним (4), 06-Июн-23, 12:14 
Ты программирование когда-нибудь в жизни занимался?
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +4 +/
Сообщение от Шарп (ok), 06-Июн-23, 12:21 
>Ты программирование когда-нибудь в жизни занимался?

По будням, с восьми до семнадцати.

Я у тебя тоже хочу спросить как ты, например, будешь писать программу для группового переименования файлов по шаблону, если для тебя имя файлов это просто набор байт кроме нуля и ты не знаешь что такое символ и как он кодируется. Даже простые сценарии как замена расширения файла уже требуют понимать как кодируется символ точки.

Ответить | Правка | Наверх | Cообщить модератору

31. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +4 +/
Сообщение от Аноним (4), 06-Июн-23, 12:28 
У тебя не получается брось это занятие это не твоё.

Расскажи мне про имена файлов типа ¢aḟé࿰ユ😀!🇼❗⁉

Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  –4 +/
Сообщение от Шарп (ok), 06-Июн-23, 13:19 
> Расскажи мне про имена файлов типа ¢aḟé࿰ユ😀!🇼❗⁉

Ты на этапе определения точки уже посыпался. Куда тебе до эмодзи.

Возвращаясь к началу, хороший способ определить быдлокодера это проверить работу его программы по путям с пробелами и не ASCII символами.


Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +2 +/
Сообщение от Аноним (55), 06-Июн-23, 14:00 
Вот так взял и записал 100% любителей шелла в быдлокодеры. Тут есть некоторая вероятность что люди просто не осилили синтаксическую эквилибристику и башизмы, хотя, любители позикс-шелла и переносимости, безусловно, быдлокодеры.
Ответить | Правка | Наверх | Cообщить модератору

143. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  –1 +/
Сообщение от Tron is Whistling (?), 06-Июн-23, 20:59 
С чего бы "вот так взял". Кавычки использовать не научились? Ну так ёклмн, определение-то верно тогда.
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +1 +/
Сообщение от BeLord (ok), 06-Июн-23, 14:01 
Вне контекста аппаратной платформы, рассуждать о именах файлах, мягко скажем не разумно.-)
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

184. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +1 +/
Сообщение от Аноним (184), 08-Июн-23, 10:56 
> Даже простые сценарии как замена расширения файла уже требуют понимать как кодируется символ точки.

расширения файла не существует.  существует только имя.
расширение -- это плод воображения выходцев из мелкомягкого.

> программу для группового переименования файлов по шаблону, если для тебя имя
> файлов это просто набор байт кроме нуля и ты не знаешь что такое символ и как он кодируется.

для этого не надо знать, как кодируется символ.
для этого надо иметь:
* булевую функцию работы с шаблоном вида f(template, fname);
* функцию преобразрвания по маске вида new_name = g(template, mask, old_name);
* набор байт template, являющийся шаблоном;
* набор байт mask, являющийся маской;
* набор байт old_name, являющийся именем файла;
* функцию переименования файла;
* а также функции работы с файловой системой: открытие, чтение, закрытие директории; стат файла; etc.;

при этом все имена файлов и директорий -- наборы байтов.
какими они при этом будут строками -- не имеет значения.
(если они будут экземплярами какого-либо класса, а не просто наборами байт, то изменится только код выделения/высвобождения памяти на всяко-разные new/delete).

(кто помнит 90ые и win32, там из-за программистов, считающих строку строкой, возникла серъёзная проблема перехода на utf; с тех пор те, кто ещё жив, но ещё не в маразме, не любят считать строку чем-либо кроме набора байт).

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

193. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от oficsu (ok), 11-Июн-23, 08:10 
Имена-то, может, они и читают. Но с чего вы взяли, что между голыми байтами и людьми нет прослоек? Ну, например, такой, которая расшифровывает бинарные блобы в текст? Или, например, декодирует. Или это у виндоюзеров такая страстная любовь к крашам приложений из-за перепутанной кодировки?
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

20. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +2 +/
Сообщение от Аноним (55), 06-Июн-23, 12:19 
Это в юникс-лайк. Припоминаю, в венде имя файла с немного битым юникодом вызывало бсод где-то в ядре, т.е. ядро системы не знает о каких-то там байтах, получается.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

32. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +3 +/
Сообщение от Аноним (4), 06-Июн-23, 12:29 
Юникод вызывал бсод у айфона чего уж там.
Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от warlock66613email (ok), 06-Июн-23, 12:44 
Да, в винде строже, но всё равно не строки, а произвольные последовательности 16-битных слов (возможно кроме нуля, а возможно и ноль разрешён, не помню с ходу).
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

65. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +4 +/
Сообщение от Аноним (65), 06-Июн-23, 14:23 
> Набор любых байтов, кроме \0

это называется строкой в С, не надо тебе программировать, текст от строк не отличаешь

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

192. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от oficsu (ok), 11-Июн-23, 08:07 
>> Набор любых байтов, кроме \0
> это называется строкой в С, не надо тебе программировать, текст от строк
> не отличаешь

Внезапно, это называется не string, а null-terminated string и оно существует в современных ЯП исключительно ради совместимости и перлов с квадратными парсерами из-за strlen. К счастью, постепенно выпиливается

Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +1 +/
Сообщение от _hide_ (ok), 06-Июн-23, 14:43 
Вы юникод, видимо, в глаза не видели.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

71. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от ИмяХ (?), 06-Июн-23, 15:02 
Набор любых байтов - это и есть строка, а \0 это её окончание.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

83. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +3 +/
Сообщение от Sw00p aka Jerom (?), 06-Июн-23, 15:36 
об окончании строки должна говорить ее длина :)
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от ИмяХ (?), 06-Июн-23, 15:51 
Это нужно далеко не всегда.

Ответить | Правка | Наверх | Cообщить модератору

135. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от Sw00p aka Jerom (?), 06-Июн-23, 20:13 
> Это нужно далеко не всегда.

точно, лента Тьюринга ведь бесконечна :)

Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от Аноним (24), 06-Июн-23, 16:25 
> Набор любых байтов - это и есть строка, а \0 это её окончание.

Т.е. в паскале, перле или жабе строк нет, так и запишем.

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

148. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от Аноним (148), 06-Июн-23, 23:29 
> кроме \0, очевидно

О, я бы не был столь категоричен.

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

194. "Выпуск uutils 0.0.19, варианта GNU Coreutils на языке Rust"  +/
Сообщение от oficsu (ok), 11-Июн-23, 08:12 
>> кроме \0, очевидно
> О, я бы не был столь категоричен.

Я бы хотел быть ещё категоричнее, и снял гарантию наличия \0, заменив ту на нормальный способ передачи длины

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру