90 likes | 275 Views
Network Programming CSC- 341. Instructor: Junaid Tariq, Lecturer, Department of Computer Science. 13. Lecture. Network Programming. 3.9 readn , writen , and realine Functions. #include “unp.h” ssize_t readn (int filedes , void * buff , size_t nbytes );
E N D
Network ProgrammingCSC- 341 Instructor: Junaid Tariq, Lecturer, Department of Computer Science
13 Lecture Network Programming
3.9 readn, writen, and realine Functions #include “unp.h” ssize_t readn(int filedes, void *buff, size_t nbytes); ssize_t writen(int filedes, const void *buff, size_t nbytes); ssize_t readline(int filedes, void *buff, size_t maxline); All return: number of bytes read or written, -1 on error
3.10 Isfdtypefunction • Test a Descriptor to see if it is of a specified type • historically : fstat function used ==> testing the returned value st_mode value using one of the S_IFxxx macro. #include <sys/stat.h> int isfdtype(int fd, int fdtype); /* return:1 if descriptor of specified type, 0 if not, -1 on error */ /* To test for a socket, fdtype is S_IFSOCK.*/
#ifndef S_IFSOCK #error S_IFSOCK not defined #endif int isfdtype(int fd, int fdtype) { struct stat buf; if(fstat (fd, &buf) < 0) return (-1); if((buf.st_mode & S_IFMT) == fdtype) return (1); else return (0); }
st_mode field • The following flags are defined for the st_mode field: • S_IFMT bit mask for the file type bit fields • S_IFSOCK socket • S_IFLNK symbolic link • S_IFREG regular file • S_IFBLK block device • S_IFDIR directory • S_IFCHR character device • S_IFIFO FIFO