diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-11 21:05:42 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-11 21:05:42 +0100 |
commit | ab19ede65595f6c0daba1e9b6c7c0a2ede341fec (patch) | |
tree | 144f7f397a4c193e5af9b445d14fee7d471107d2 /libbb | |
parent | c096a6c2084b6d920182714beb842ebb40087182 (diff) | |
download | busybox-w32-ab19ede65595f6c0daba1e9b6c7c0a2ede341fec.tar.gz busybox-w32-ab19ede65595f6c0daba1e9b6c7c0a2ede341fec.tar.bz2 busybox-w32-ab19ede65595f6c0daba1e9b6c7c0a2ede341fec.zip |
tidy up O_NONBLOCK usage. use libbb functions in stty.
Added O_RDONLY where improves readability. Note: O_RDONLY == 0,
so it is there even if not specified.
function old new delta
stty_main 1289 1235 -54
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/read.c | 6 | ||||
-rw-r--r-- | libbb/xfuncs.c | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libbb/read.c b/libbb/read.c index b93a695b5..06ce29718 100644 --- a/libbb/read.c +++ b/libbb/read.c | |||
@@ -39,18 +39,18 @@ ssize_t FAST_FUNC safe_read(int fd, void *buf, size_t count) | |||
39 | * *** BIG SURPRISE! It stays even after child exits! *** | 39 | * *** BIG SURPRISE! It stays even after child exits! *** |
40 | * | 40 | * |
41 | * This is a design bug in UNIX API. | 41 | * This is a design bug in UNIX API. |
42 | * fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK); | 42 | * fcntl(0, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK); |
43 | * will set nonblocking mode not only on _your_ stdin, but | 43 | * will set nonblocking mode not only on _your_ stdin, but |
44 | * also on stdin of your parent, etc. | 44 | * also on stdin of your parent, etc. |
45 | * | 45 | * |
46 | * In general, | 46 | * In general, |
47 | * fd2 = dup(fd1); | 47 | * fd2 = dup(fd1); |
48 | * fcntl(fd2, F_SETFL, fcntl(fd2, F_GETFL, 0) | O_NONBLOCK); | 48 | * fcntl(fd2, F_SETFL, fcntl(fd2, F_GETFL) | O_NONBLOCK); |
49 | * sets both fd1 and fd2 to O_NONBLOCK. This includes cases | 49 | * sets both fd1 and fd2 to O_NONBLOCK. This includes cases |
50 | * where duping is done implicitly by fork() etc. | 50 | * where duping is done implicitly by fork() etc. |
51 | * | 51 | * |
52 | * We need | 52 | * We need |
53 | * fcntl(fd2, F_SETFD, fcntl(fd2, F_GETFD, 0) | O_NONBLOCK); | 53 | * fcntl(fd2, F_SETFD, fcntl(fd2, F_GETFD) | O_NONBLOCK); |
54 | * (note SETFD, not SETFL!) but such thing doesn't exist. | 54 | * (note SETFD, not SETFL!) but such thing doesn't exist. |
55 | * | 55 | * |
56 | * Alternatively, we need nonblocking_read(fd, ...) which doesn't | 56 | * Alternatively, we need nonblocking_read(fd, ...) which doesn't |
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index e47b01dc1..aac46f414 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c | |||
@@ -27,12 +27,12 @@ | |||
27 | /* Turn on nonblocking I/O on a fd */ | 27 | /* Turn on nonblocking I/O on a fd */ |
28 | int FAST_FUNC ndelay_on(int fd) | 28 | int FAST_FUNC ndelay_on(int fd) |
29 | { | 29 | { |
30 | return fcntl(fd, F_SETFL, fcntl(fd,F_GETFL) | O_NONBLOCK); | 30 | return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); |
31 | } | 31 | } |
32 | 32 | ||
33 | int FAST_FUNC ndelay_off(int fd) | 33 | int FAST_FUNC ndelay_off(int fd) |
34 | { | 34 | { |
35 | return fcntl(fd, F_SETFL, fcntl(fd,F_GETFL) & ~O_NONBLOCK); | 35 | return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_NONBLOCK); |
36 | } | 36 | } |
37 | 37 | ||
38 | int FAST_FUNC close_on_exec_on(int fd) | 38 | int FAST_FUNC close_on_exec_on(int fd) |