Messages in this thread | | | Date | Tue, 15 Sep 2015 17:10:11 +0800 | Subject | Re: [PATCH] kernel/sysctl.c: If "count" including the terminating byte '\0' the write system call should retrun success. | From | Sean Fu <> |
| |
According to POSIX standard, "The write() function shall attempt to write nbyte bytes from the buffer pointed to by buf to the file associated with the open file descriptor, fildes.". So it is not the length of string(strlen).
On Mon, Sep 14, 2015 at 4:05 AM, Steven Rostedt <rostedt@goodmis.org> wrote: > On Sun, 13 Sep 2015 20:39:31 +0800 > Sean Fu <fxinrong@gmail.com> wrote: > > >> > Accepting a '\0' is not at all reasonable for a text interface. The >> > application that does it is buggy. >> It is hard to comprehend that the current kernel can accept two bytes >> "1 ", "1\t", "1\n" except "1\0". > > Um, it does not seem hard to comprehend at all. As this is a string, > and it acts the same as a printf() or strlen. > > strlen("1 ") == 2 > strlen("1\t") == 2 > strlen("1\n") == 2 > strlen("1\0") == 1 > > Big difference to me. > > -- Steve >
| |