Liste des Groupes | Revenir à col misc |
On 2025-05-07 13:17, The Natural Philosopher wrote:Its what you have to do if e.g. you want to encode a binary file like a JPEG in source code.On 07/05/2025 11:12, Carlos E.R. wrote:LOL! What a solution. Very readable :-DOn 2025-05-07 12:00, Richard Kettlewell wrote:That's a different issue: The solution is to construct the name as an octal character array.not@telling.you.invalid (Computer Nerd Kev) writes:>Rich <rich@example.invalid> wrote:>Computer Nerd Kev <not@telling.you.invalid> wrote:>It could have been the same with ext* forbidding newlines (also tmpfs>
etc.). Then you'd only have to worry about handling newlines in the
rare case of reading from some non-Linux filesystems like UFS.
Could ext* have forbade newlines? Yes. But that would have gone
against years of Unix tradition at the time had it done so. Since
Linux began as a "clone of Unix" it was only natural for it to inherit
Unix traditions as to filenames (any byte value other than ASCII NULL
and ASCII forward slash being allowed).
Well the original quote from Torvalds was about case insensitive
filesystems, which also already have a tradition, but he doesn't
like them, with good reasons. I feel there are valid reasons to
dislike newlines in filenames too. Maybe that would have been too
radical for a UNIX-based OS filesystem, but in practice I can't see
how it would have caused much trouble, and it would have avoided
needing lots of special handling for newlines in software.
Forbidding newlines in extfs and its successors would be straightforward
indeed - no harder than forbidding ‘/’ in filenames. But as well as
swimming against the Unix tide it wouldn’t actually eliminate the
higher-level problem that shell copes badly with filenames with spaces,
newlines, etc, since there’s more to life than Linux’s native
filesystem. Early versions of Linux used the Minix filesystem, and today
the kernel includes a large collection of ‘foreign’ filesystems.
>
Using almost any other language than shell, on the other hand, makes the
problem go away.
Except if you hardcode a filename inside a C program, for instance. You still have to escape the quotes.
>
Les messages affichés proviennent d'usenet.