系统级程序设计第一课:
对这门课的认识是系统级程序设计这门课主要是在linux系统下的进行的程序开发和对linux系统的深入理解与使用。今天学习的第一课是进行linux文件的操作,通过C语言来进行文件的操作,在编译中有着未接触的函数,这些函数都是系统调用中与I/O操作相关的接口,如open()、write()、read()、lseek()、close()等。
学习内容:
学习了基本的接口
open()函数:打开或创建一个文件,该函数存在于系统函数库fcntl.h
#include <fcntl.h>
int open(const char *pathname, int flags[, mode_t mode);
read()函数:用于从已打开的设备或文件中读取数据,存在于函数库unistd.h
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
write()函数:用于向已打开的设备或文件中写入数据,存在于函数库unistd.h
#include <unistd.h>
ssize_t write(int fd, void *buf, size_t count);
lseek()函数:每个打开的文件都有一个偏移量,该值为非负整数,表示文件的读写位置,linux通过调用lseek()对数值进行修改,存在于函数库unistd.h
#include <unistd.h>
ssize_t write(int fd, off_t offset, int whence);
seek函数参数说明:
fd: 从open或create函数返回的文件描述符
offset: 对文件偏移量的设置,参数可正可负
close()函数:用于关闭文件,在函数库unistd.h
#include <unistd.h>
int close(int fd);
成功:返回0
不成功:-1
代码截图:
代码结果:
总结:在编译代码时没有创建a.txt导致无法找到打开a.txt,需要在同文件夹创建a.txt,代码运行成功,成功通过write()在文件中写入数据。
`