1. /dev/console /dev/tty /dev/null /dev/zero
2. 系统调用会影响系统性能,程序中应该尽量减少调用次数,并让每次调用尽可能完成多的任务
#include<unistd.h>
size_t write (int fildes, const void *buf, size_t nbytes); //write可能会报告它写入大字节比你要求大少,这并不一定是个错误,程序中你需要检查errno错误,然后再次调用write写入剩下大数据
size_t read (int filds, const void *buf, size_t nbytes);
int close (int fildes);
int ioctl(int fildes, int cmd, ...)
int dup(int fildes)
int dup2 (int fildes, int fildes2)
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
int open (const char *path, int oflags, mode_t mode)//如果两次程序打开同一个文件,写入的数据会彼此覆盖,错误返回-1,一个程序能打开大文件数目是有限大,在limits.h中的OPEN_MAX规定
int fstat (int fildes, struct stat *buf)
int stat (const char *path, struct stat *buf)
int lstat (const char *path, struct stat *buf)
#include <unistd.h>
#include <sys/types.h>
off_t lseek (int fildes, off_t offset, int whence)
3.标准库IO
#include<stdio.h>
FILE *fopen(const char *filename, const char *mode) //正确时返回一个非空指针,失败返回NULL,NULL定义在头文件stdio.h里
size_t fread (void *ptr, size_t size, size_t nitems, FILE *stream);
size_t fwrite (void *ptr, size_t size, size_ nitems, FILE *stream);
int fclose(FILE *stream);
int fflush(FILE *stream);
int fseek (FILE *stream, long int offset, int whence);
int fgetc(FILE *stream);
int getc(FILE *stream);
int getchar( );
int fputc(int c, FILE *stream);
int putc(int c, File *stream);
int putchar( int c );//请注意字符是当成int类型,这就使得文件尾EOF标识符取-1
char *fgets(char *s, int n, FILE *stream);//这个函数会把换行符也接收进来,再加一个空子节,所以只能传输n-1个字节
char *gets(char *s); //没有规定字节数,可能会誉出
int printf(const char *format, ...)
int sprintf(char *s, const char *format,...)//输出后加一个空字符传给*s,*s必须足够大
int fprintf(FILE *stream, const char *format,...)
int scanf(const char *format, ...)
int fscanf(FILE *stream, const char *format,...)
int sscanf(const char *s, const char *format...)
#include<errno.h>
extern int errno
#include<stdio.h>
int ferro(FILE *stream)
int feof(FILE *stream)
void clearerr(FIle *stream)
#include<stdio.h>
int fileno(FILE *stream)
FILE *fdopen(int fildes, const char *mode)
#include<sys/stat.h>
chmod 用来修改权限
umask 用来设定创建文件时的默认权限 chmod = 0777 - umask
#include<unistd.h>
int chown(const char *path,uid_t owner, gid_t group)
#include <fcntl.h>
int fcntl(int fildes, int cmd)
int fcntl(int fildes, int cmd, long arg)
mmap函数
2. 系统调用会影响系统性能,程序中应该尽量减少调用次数,并让每次调用尽可能完成多的任务
#include<unistd.h>
size_t write (int fildes, const void *buf, size_t nbytes); //write可能会报告它写入大字节比你要求大少,这并不一定是个错误,程序中你需要检查errno错误,然后再次调用write写入剩下大数据
size_t read (int filds, const void *buf, size_t nbytes);
int close (int fildes);
int ioctl(int fildes, int cmd, ...)
int dup(int fildes)
int dup2 (int fildes, int fildes2)
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
int open (const char *path, int oflags, mode_t mode)//如果两次程序打开同一个文件,写入的数据会彼此覆盖,错误返回-1,一个程序能打开大文件数目是有限大,在limits.h中的OPEN_MAX规定
int fstat (int fildes, struct stat *buf)
int stat (const char *path, struct stat *buf)
int lstat (const char *path, struct stat *buf)
#include <unistd.h>
#include <sys/types.h>
off_t lseek (int fildes, off_t offset, int whence)
3.标准库IO
#include<stdio.h>
FILE *fopen(const char *filename, const char *mode) //正确时返回一个非空指针,失败返回NULL,NULL定义在头文件stdio.h里
size_t fread (void *ptr, size_t size, size_t nitems, FILE *stream);
size_t fwrite (void *ptr, size_t size, size_ nitems, FILE *stream);
int fclose(FILE *stream);
int fflush(FILE *stream);
int fseek (FILE *stream, long int offset, int whence);
int fgetc(FILE *stream);
int getc(FILE *stream);
int getchar( );
int fputc(int c, FILE *stream);
int putc(int c, File *stream);
int putchar( int c );//请注意字符是当成int类型,这就使得文件尾EOF标识符取-1
char *fgets(char *s, int n, FILE *stream);//这个函数会把换行符也接收进来,再加一个空子节,所以只能传输n-1个字节
char *gets(char *s); //没有规定字节数,可能会誉出
int printf(const char *format, ...)
int sprintf(char *s, const char *format,...)//输出后加一个空字符传给*s,*s必须足够大
int fprintf(FILE *stream, const char *format,...)
int scanf(const char *format, ...)
int fscanf(FILE *stream, const char *format,...)
int sscanf(const char *s, const char *format...)
#include<errno.h>
extern int errno
#include<stdio.h>
int ferro(FILE *stream)
int feof(FILE *stream)
void clearerr(FIle *stream)
#include<stdio.h>
int fileno(FILE *stream)
FILE *fdopen(int fildes, const char *mode)
#include<sys/stat.h>
chmod 用来修改权限
umask 用来设定创建文件时的默认权限 chmod = 0777 - umask
#include<unistd.h>
int chown(const char *path,uid_t owner, gid_t group)
#include <fcntl.h>
int fcntl(int fildes, int cmd)
int fcntl(int fildes, int cmd, long arg)
mmap函数