История изменений
Исправление fsb4000, (текущая версия) :
В Linux нативный тип это набор байт. Не utf-8 и не char*.
Не utf-8, так как имя файла может быть невалидной utf-8 последовательностью
Не char*, так как ограничения есть у типа файловой системы, например у ext4: Любые символы, кроме NUL, /
Большинство языков забивают и используют char* или utf-8 или utf-16
Но, например, в Python есть нативный тип строк для Linux это: b""
В rust: https://doc.rust-lang.org/std/ffi/struct.OsString.html
Исправление fsb4000, :
В Linux нативный тип это набор байт. Не utf-8 и не char*.
Не utf-8, так как имя файла может быть невалидной utf-8 последовательностью
Не char*, так как ограничения есть у типа файловой системы, например у ext4: Любые символы, кроме NUL, /
Большинство языков забивают и используют char* или utf-8 или utf-16
Но, например, в Python есть нативный тип строк для Linux это: b""
Исправление fsb4000, :
В Linux нативный тип это набор байт. Не utf-8 и не char*.
Не utf-8, так как имя файла может быть невалидной utf-8 последовательностью
Не char*, так как в середине имени могут быть ‘\0’ символы.
Большинство языков забивают и используют char* или utf-8 или utf-16
Но, например, в Python есть нативный тип строк для Linux это: b""
Исходная версия fsb4000, :
В Linux нативный тип это набор байт. Не utf-8 и не char*.
Не utf-8, так как имя файла может быть невалидной utf-8 последовательностью
Не char*, так как в середине имени могут быть ‘\0’ символы.
Большинство языков забивают и используют char* или utf-8.
Но, например, в Python есть нативный тип строк для Linux это: b""