Package: manpages-dev Version: 6.03-2 Dear Maintainer,
'man 2 open' lists 3 cases in which ENOENT can be returned: ENOENT O_CREAT is not set and the named file does not exist. ENOENT A directory component in pathname does not exist or is a dangling symbolic link. ENOENT pathname refers to a nonexistent directory, O_TMPFILE and one of O_WRONLY or O_RDWR were specified in flags, but this kernel version does not provide the O_TMPFILE functionality. I suggest another be listed: ENOENT The directory in which the file is to be created no longer exists. (Or the second case could be re-worded to cover that.) A simple test shows it can happen: $ mkdir foo $ cd foo $ rmdir ../foo $ touch bar touch: cannot touch 'bar': No such file or directory $ strace shows: openat(AT_FDCWD, "bar", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = -1 ENOENT (No such file or directory) And POSIX requires openat(AT_FDCWD, ...) to be identical to open(...). O_CREAT was set, pathname included no directory component, and O_TMPFILE was not used--so ENOENT did not correspond to anything listed. The same result occurs if AT_FDCWD is replaced by a file descriptor for "foo"; in both cases, though, pathnames such as "../bar" still work. - Michael -- System Information: Debian Release: trixie/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 6.5.0-4-amd64 (SMP w/32 CPU threads; PREEMPT) Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), LANGUAGE=en_CA:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages manpages-dev depends on: ii manpages 6.03-2 manpages-dev recommends no packages. Versions of packages manpages-dev suggests: ii man-db [man-browser] 2.12.0-1 -- no debconf information
signature.asc
Description: PGP signature