最近在c和python之间来回使用文件读写,有时候会发生混淆,在这做个总结,小记一下。
c文件读写的基础函数:
对文件描述符操作
int open(const char *pathname, int flags, mode_t mode);
ssize_t read(int fd, void *buf, size_t count);
ssize_t write(int fd, const void *buf, size_t count);
对文件指针操作
FILE *fopen(const char *path, const char *mode);
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, ILE *stream);
文件描述符 文件指针转换
int fileno(FILE *stream);
FILE *fdopen(int fd, const char *mode);
python文件读写基础函数:
对文件描述符操作
os.open(file, flags[, mode]);
os.read(fd,n)
os.write(fd, str)
对文件指针操作
file = open(file_name [, access_mode][, buffering])
file.read([size])
file.write(str)
文件描述符 文件指针转化
file.fileno()
os.fdopen(fd, [, mode[, bufsize]]);
文件指针操作是高级io,有缓冲区
文件描述符是低级io,没有缓冲区