Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/lib/libc/stdlib
Date: Wed, 28 Sep 2022 20:48:53 -0400
From: "David H. Gutteridge" <david%gutteridge.ca@localhost>
Message-ID: <9c9c8e9d9384338320b47dabfdc94952%gutteridge.ca@localhost>
| (O_CLOEXEC, on the other hand, is ignored, at the moment.)
No it isn't, your test is faulty, O_CLOEXEC is a different
kind of flag, applies at a different level, and is fetched
a different way.
That's what dholland@ tried to tell you a few days ago.
kre
|
| $ cat open_test.c
| #include <fcntl.h>
| #include <stdio.h>
| #include <unistd.h>
|
| int main(int argc, char* argv[])
| {
| int fd, flags;
|
| printf("Regular file (read-only) with O_NONBLOCK | O_CLOEXEC.\n");
| if ((fd = open("/etc/release", O_RDONLY | O_NONBLOCK | O_CLOEXEC)) < 0)
| printf("Failed to get file handle.\n");
| else {
| printf("Descriptor flags: %d\n", flags = fcntl(fd, F_GETFD));
| printf("Status flags: %d\n", flags = fcntl(fd, F_GETFL, 0));
| close(fd);
| }
|
| printf("POSIX pt cloning device with O_NONBLOCK | O_CLOEXEC.\n");
| if ((fd = open("/dev/ptmx", O_RDWR | O_NOCTTY | O_NONBLOCK |
| O_CLOEXEC)) < 0)
| printf("Failed to open /dev/ptmx.\n");
| else {
| printf("Descriptor flags: %d\n", flags = fcntl(fd, F_GETFD));
| printf("Status flags: %d\n", flags = fcntl(fd, F_GETFL, 0));
| close(fd);
| }
|
| return 0;
| }
|
| $ ./open_test
| Regular file (read-only) with O_NONBLOCK | O_CLOEXEC.
| Descriptor flags: 1
| Status flags: 4
| POSIX pt cloning device with O_NONBLOCK | O_CLOEXEC.
| Descriptor flags: 0
| Status flags: 6
|
| Regards,
|
| Dave
|
Home |
Main Index |
Thread Index |
Old Index