diff --git a/ChangeLog b/ChangeLog index 98ecf7778ca13c2a00e6249b547e0222333ff1dd..6378c34cec0ddd13a85db149be69a57d87de6f3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -402,4 +402,6 @@ * Removed duplicate getenv() implementation in /lib * Correct detection of End-of-File in fgets * Implement sh and crude script handler in NSH + * Fix prototype of read() and write(). Need to use ssize_t and size_t, not + int and unsigned int. diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6356422c5c716fd04e3ab1ec68e1c5c3738a5b13..72b61cb91ad6fff89ccecaf7d53b11eaa389053b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1036,6 +1036,8 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Removed duplicate getenv() implementation in /lib * Correct detection of End-of-File in fgets * Implement sh and crude script handler in NSH + * Fix prototype of read() and write(). Need to use ssize_t and size_t, not + int and unsigned int. pascal-0.1.3 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index a6e6ea90d09fffd7f015bfef4db4774a42ca8180..e5cb13eb3b7dd74d00b5c5304eb1b8a435d9e17d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -5917,18 +5917,18 @@ interface of the same name. <ul><pre> #include <unistd.h> - int close(int fd); - int dup(int fildes); - int dup2(int fildes1, int fildes2); - off_t lseek(int fd, off_t offset, int whence); - int read(int fd, void *buf, unsigned int nbytes); - int unlink(const char *path); - int write(int fd, const void *buf, unsigned int nbytes); + int close(int fd); + int dup(int fildes); + int dup2(int fildes1, int fildes2); + off_t lseek(int fd, off_t offset, int whence); + ssize_t read(int fd, void *buf, size_t nbytes); + int unlink(const char *path); + ssize_t write(int fd, const void *buf, size_t nbytes); </pre></ul> <ul><pre> #include <sys/ioctl.h> - int ioctl(int fd, int req, unsigned long arg); + int ioctl(int fd, int req, unsigned long arg); </pre></ul> <h2><a name="directoryoperations">2.11.3 Directory Operations</a></h2> diff --git a/fs/fs_read.c b/fs/fs_read.c index 7500d359943ce62d88b6ee7079a9ed5aeefeb761..51d10830a7a4b8f02ed6c4714410745eb787d231 100644 --- a/fs/fs_read.c +++ b/fs/fs_read.c @@ -53,7 +53,7 @@ * Global Functions ****************************************************************************/ -int read(int fd, FAR void *buf, unsigned int nbytes) +ssize_t read(int fd, FAR void *buf, size_t nbytes) { FAR struct filelist *list; int ret = EBADF; diff --git a/fs/fs_write.c b/fs/fs_write.c index 28fa8664cc98977108ef55ce320d34e5e6c7039c..19652ad5923235fdda6909c7d85c69b2289e4fe6 100644 --- a/fs/fs_write.c +++ b/fs/fs_write.c @@ -58,7 +58,7 @@ * Global Functions ****************************************************************************/ -/******************************************************************************************** +/*************************************************************************** * Function: write * * Description: @@ -108,7 +108,7 @@ * ********************************************************************************************/ -int write(int fd, FAR const void *buf, unsigned int nbytes) +ssize_t write(int fd, FAR const void *buf, size_t nbytes) { #if CONFIG_NFILE_DESCRIPTORS > 0 FAR struct filelist *list; diff --git a/include/unistd.h b/include/unistd.h index e2b88686fa135ccad6e1b96ff6314af887a6b04e..ae34e3d6aa445291a34eda228acb6502d9a66265 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -120,32 +120,32 @@ EXTERN int optopt; /* unrecognized option character */ /* Task Control Interfaces */ -EXTERN pid_t getpid(void); -EXTERN void _exit(int status) noreturn_function; +EXTERN pid_t getpid(void); +EXTERN void _exit(int status) noreturn_function; EXTERN unsigned int sleep(unsigned int seconds); -EXTERN void usleep(unsigned long usec); +EXTERN void usleep(unsigned long usec); /* File descriptor operations */ -EXTERN int close(int fd); -EXTERN int dup(int fd); -EXTERN int dup2(int fd1, int fd2); -EXTERN int fsync(int fd); -EXTERN off_t lseek(int fd, off_t offset, int whence); -EXTERN int read(int fd, FAR void *buf, unsigned int nbytes); -EXTERN int write(int fd, FAR const void *buf, unsigned int nbytes); +EXTERN int close(int fd); +EXTERN int dup(int fd); +EXTERN int dup2(int fd1, int fd2); +EXTERN int fsync(int fd); +EXTERN off_t lseek(int fd, off_t offset, int whence); +EXTERN ssize_t read(int fd, FAR void *buf, size_t nbytes); +EXTERN ssize_t write(int fd, FAR const void *buf, size_t nbytes); /* Special devices */ -EXTERN int pipe(int filedes[2]); +EXTERN int pipe(int filedes[2]); /* File path operations */ -EXTERN int unlink(FAR const char *pathname); -EXTERN int rmdir(FAR const char *pathname); +EXTERN int unlink(FAR const char *pathname); +EXTERN int rmdir(FAR const char *pathname); /* Other */ -EXTERN int getopt(int argc, FAR char *const argv[], FAR const char *optstring); +EXTERN int getopt(int argc, FAR char *const argv[], FAR const char *optstring); #undef EXTERN #if defined(__cplusplus)