aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-11-11 21:05:42 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2009-11-11 21:05:42 +0100
commitab19ede65595f6c0daba1e9b6c7c0a2ede341fec (patch)
tree144f7f397a4c193e5af9b445d14fee7d471107d2 /libbb
parentc096a6c2084b6d920182714beb842ebb40087182 (diff)
downloadbusybox-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.c6
-rw-r--r--libbb/xfuncs.c4
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 */
28int FAST_FUNC ndelay_on(int fd) 28int 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
33int FAST_FUNC ndelay_off(int fd) 33int 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
38int FAST_FUNC close_on_exec_on(int fd) 38int FAST_FUNC close_on_exec_on(int fd)