APUE(UNIX环境高级编程第二版)函数归纳(3-7章)

来源:互联网 发布:ubuntu17.10安装软件 编辑:程序博客网 时间:2024/05/02 04:55

第3章 文件I/O

序号函数名原型头文件1openint open(const char *pathname, int flag, …/* mode_t mode */ );#include <fcntl.h>2createint create(const char *pathname, mode_t mode);#include <fcntl.h>3closeint close(int filedes);#include <unistd.h>4lseekoff_t lseek(int flags, off_t offset, int whence);#include <unistd.h>5readssize_t read(int filedes, void *buf, size_t nbytes);#include <unistd.h>6writessize_t write(int filedes, const void *buf, size_t nbytes);#include <unistd.h>7preadssize_t pread(int filedes, void *buf, size_t nbytes, off_t offset);#include <unistd.h>8pwritessize_t pwrite(int filedes, const void *buf, size_t nbytes, off_t offset);#include <unistd.h>9dupint dup(int filedes);#include <unistd.h>10dup2int dup2(int filedes, int filedes2)#include <unistd.h>11fsyncint fsync(int filedes);#include <unistd.h>12fdatasyncint fdatasync(int filedes);#include <unistd.h>13syncint sync(void);#include <unistd.h>14fcntlint fcntl(int filedes, int cmd, … /* int arg */ );#include <fcntl.h>15ioctlint ioctl(int filedes, int request, …);#include <sys/ioctl.h>

第4章 文件和目录

序号函数名原型头文件1statint stat(const char *restrict pathname, struct stat *restrict buf);#include <sys/stat.h>2fstatint fstat(int filedes, struct stat *buf);#include <sys/stat.h>3lstatint lstat(const char* restrict pathname, struct stat *restrict buf);#include <sys/stat.h>4S_ISREGS_ISREG()#include <sys/stat.h>5S_ISDIRS_ISDIR()#include <sys/stat.h>6S_ISCHRS_ISCHR()#include <sys/stat.h>7S_ISBLKS_ISBLK()#include <sys/stat.h>8S_ISFIFOS_ISFIFO()#include <sys/stat.h>9S_ISLNKS_ISLNK()#include <sys/stat.h>10S_ISSOCKS_ISSOCK()#include <sys/stat.h>11S_TYPEISMQS_TYPEISMQ()#include <sys/stat.h>12S_TYPEISSEMS_TYPEISEM()#include <sys/stat.h>13S_TYPEISSHMS_TYPEISSHM()#include <sys/stat.h>14accessint access(const char *pathname, int mode);#include <unistd.h>15umaskmode_t umask(mode_t cmask);#include <sys/stat.h>16chmodint chmod(const char *pathname, mode_t mode);#include <sys/stat.h>17fchmodint fchmod(int filedes, mode_t mode);#include <sys/stat.h>18chownint chown(const char *pathname, uid_t owner, gid_t group);#include <unistd.h>19fchownint fchown(int filedes, uid_t owner, gid_t group);#include <unistd.h>20lchownint lchown(const char *pathname, uid_t owner, gid_t group);#include <unistd.h>21truncateint truncate(const char *pathname, off_t length);#include <unistd.h>22ftruncateint ftruncate(int filedes, off_t length);#include <unistd.h>23removeint remove(const char *pathname);#include <stdio.h>24renameint rename(const char *oldname, const char *newname);#include <stdio.h>25symlinkint symlink(const char *actualpath, const char *sympath);#include <unistd.h>26readlinkssize_t readlink(const char* restrict pathname, char *restrict buf, size_t bufsize);#include <unistd.h>27utimeint utime(const char *pathname, const struct utimbuf *times);#include <utime.h>28mkdirint mkdir(const *pathname, mode_t mode);#include <sys/stat.h>29rmdirint rmdir(const char *pathname);#include <unistd.h>30opendirDIR *opendir(const char *pathname);#include <dirent.h>31readdirstruct dirent *readdir(DIR *dp);#include <dirent.h>32rewinddirvoid rewinddir(DIR * dp);#include <dirent.h>33closedirint closedir(DIR *dp);#include <dirent.h>34telldirlong telldir(DIR *dp);#include <dirent.h>35seekdirvoid seekdir(DIR *dp, long loc);#include <dirent.h>36chdirint chdir(const char *pathname);#include <unistd.h>37fchdirint fchdir(int filedes);#include <unistd.h>38getcwdchar *getcwd(char *buf, size_t size);#include <unistd.h>

第5章 标准I/O库

序号函数名原型头文件1fwideint fwide(FILE *fp, int mode);#include <stdio.h>
#include <wcharh>2setbufvoid setbuf(FILE *restrict fp, char *restrict buf);#include <stdio.h>3setvbufint setvbuf(FILE *restrict fp, char *restrict buf, int mode, size_t size);#include <stdio.h>4fflushint fflush(FILE *fp);#include <stdio.h>5fopenFILE *fopen(const char *restrict pathname, const char *restrict type);#include <stdio.h>6freopenFILE *freopen(const char *restrict pathnam, const char *restrict type, FILE *restrict fp);#include <stdio.h>7fdopenFILE *fdopen(int filedes, const char *type);#include <stdio.h>8fcloseint fclose(FILE *fp);#include <stdio.h>9getcint getc(FILE *fp);#include <stdio.h>10fgetcint fgetc(FILE *fp);#include <stdio.h>11getcharint getchar(void);#include <stdio.h>12ferrorint ferror(FILE *fp);#include <stdio.h>13feofint feof(FILE *fp);#include <stdio.h>14clearerrvoid clearerr(FILE *fp);#include <stdio.h>15ungetcint ungetc(int c, FILE *fp);#include <stdio.h>16putcint putc(int c, FILE *fp);#include <stdio.h>17fputcint fputc(int c, FILE *fp);#include <stdio.h>18putcharint putchar(int c);#inlcude <stdio.h>19fgetschar *fgets(char *restrict buf, int n, FILE *restrict fp);#include <stdio.h>20getschar *gets(char *buf);#include <stdio.h>21fputsint fputs(const char *restrict str, FILE *restrict fp);#include <stdio.h>22putsint puts(const char *str);#include <stdio.h>23freadsize_t fread(void *restrict ptr, size_t size, size_t nobj,  FILE *restrict fp);#include <stdio.h>24fwritesize_t fwrite(const void *restrict ptr, size_t size, size_t nobj, FILE *restrict fp);#include <stdio.h>25ftelllong ftell(FILE *fp);#include <stdio.h>26fseekint fseek(FILE *fp, long offset, int whence);#include <stdio.h>27rewindvoid rewind(FILE *fp);#include <stdio.h>28ftellooff_t ftello(FILE *fp);#include <stdio.h>29fseekoint fseeko(FILE *fp, off_t offset, int whence);#include <stdio.h>30fgetposint fgetpos(FILE *restrict fp, fpos_t *restrict pos);#include <stdio.h>31fsetposint fsetpos(FILE *fp, const fpos_t *pos);#include <stdio.h>32printfint printf(const char* restrict format,...);#include <stdio.h>33fprintfint fprintf(FILE *restrict fp, const char *restrict format, ...);#include <stdio.h>34sprintfint sprintf(char *restrict buf, const char *restrict format, ...);#include <stdio.h>35snprintfint snprintf(char *restrict buf, size_t n, const char *restrict format, ...);#include <stdio.h>36vprintfint vprintf(const char* restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>37vfprintfint vfprintf(FILE *restrict fp, const char *restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>38vsprintfint vsprintf(char *restrict buf, const char *restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>39vsnprintfint vsnprintf(char *restrict buf, size_t n, const char *restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>40scanfint scanf(const char * restrict format, ...);#include <stdio.h>41fscanfint fscanf(FILE *restrict fp, const char *restrict format, ...);#include <stdio.h>42sscanfint sscanf(const char *restrict buf, const char *restrict format, ...);#include <stdio.h>43vscanfint vscanf(const char *restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>44vfscanfint vfscanf(FILE *restrict fp, const char *restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>45vsscanfint vsscanf(const char *restrict buf, const char *restrict format, va_list arg);#include <stdarg.h>
#include <stdio.h>46filenoint fileno(FILE *fp);#include <stdio.h>47tmpnamchar *tmpnam(char *ptr);#include <stdio.h>48tmpfileFILE *tmpfile(void);#include <stdio.h>49tempnamchar *tempnam(const char *directory, const char *prefix);#include <stdio.h>50mkstempint mkstemp(char *template);#include <stdlib>

第6章 系统数据信息和信息

序号函数名原型头文件1getpwuidstruct passwd *getpwuid(uid_t uid);#include <pwd.h>2getpwnamstruct passwd *getpwnam(const char *name);#include <pwd.h>3getpwentstruct passwd *getpwent(void);#include <pwd.h>4setpwentvoid setpwent(void);#include <pwd.h>5endpwentvoid endpwent(void);#include <pwd.h>6getspnamstruct spwd *getspnam(const char *name);#include <shadow.h>7getspentstruct spwd *getspent(void);#include <shadow.h>8setspentvoid setspent(void);#include <shadow.h>9endspentvoid endspent(void);#include <shadow.h>10getgrgidstruct grounp *getgrgid(gid_t gid);#include <grp.h>11getgrnamstruct grounp *getgrnam(const char *name);#include <grp.h>12getgrentstruct group *getgrent(void);#include <grp.h>13setgrentvoid setgrent(void);#include <grp.h>14endgrentvoid endgrent(void);#include <grp.h>15getgroupsint getgroups(int gidsetsize, gid_t grouplist[]);#include <unistd.h>16setgroupsint setgroups(int ngroups, const gid_t grouplist[]);#include <grp.h>17initgroupsint initgroups(const char *username, gid_t basegid);#include <grp.h>18unameint uname(struct utsname *name);#include <sys/utsname.h>19gethostnameint gethostname(char *name, int namelen);#include <unistd.h>20timetime_t time(time_t *calptr);#include <time.h>21gettimeofdayint gettimeofday(struct timeval *restrict tp, void *restrict tzp);#include <sys/time.h>22gmtimestruct tm *gmtime(const time_t *calptr);#include <time.h>23localtimestruct tm *localtime(const time_t *calptr);#include <time.h>24mktimetime_t mktime(struct tm *tmptr);#include <time.h>25asctimechar *asctime(const struct tm *tmptr);#include <time.h>26ctimechar *ctime(const time_t *calptr);#include <time.h>27strftimesize_t strftime(char *restrict buf, size_t maxsize, const char *restrict format, const struct tm *restrict tmptr);#include <time.h>

第7章 进程环境

序号函数名原型头文件1exitvoid exit(int status);#include <stdlib.h>2_Exitvoid _Exit(int status);#include <stdlib.h>3_exitvoid _Exit(int status);#include <unistd.h>4atexitint atexit(void (*func)(void));#include <stdlib.h>5mallocvoid *malloc(size_t size);#include <stdlib.h>6callocvoid *calloc(size_t nobj, size_t size);#include <stdlib.h>7reallocvoid realloc(void *ptr, size_t newsize);#include <stdlib.h>8freevoid free(void *ptr);#include <stdlib.h>9getenvchar *getenv(const char *name);#include <stdlib.h>10putenvint putenv(char *str);#include <stdlib.h>11setenvint setenv(const char *name, const char *value, int rewrite);#include <stdlib.h>12unsetenvint unsetenv(const char *name);#include <stdlib.h>13setjmpint setjmp(jmp_buf env);#include <setjmp.h>14longjmpvoid longjmp(jmp_buf env, int val);#include <setjmp.h>15getrlimitint getrlimit(int resource, struct rlimit *rlptr);#include <sys/resource.h>16setrlimitint setrlimit(int resource, const struct rlimit *rlptr);#include <sys/resource.h>

0 0