Linux系统编程之文件编程(二)

您所在的位置:网站首页 linux系统编程函数 Linux系统编程之文件编程(二)

Linux系统编程之文件编程(二)

2023-05-25 10:56| 来源: 网络整理| 查看: 265

文章目录 1.光标移动操作:lseek()函数2. lseek()函数计算文件的大小

1.光标移动操作:lseek()函数 #include #include off_t lseek(int fd, off_t offset, int whence);

fd文件描述符:非负整数 Linux系统默认:

012标准输入(键盘)标准输出标准错误

int fd 指要操作文件的文件描述符 off_t offset 指光标的偏移值,负数往前偏移,正数往后偏移 int whence 指定位光标的位置 whence 共有三个位置: (1) 欲将读写位置移到文件开头时: lseek(fd, 0,SEEK_SET); // 0代表偏移值 (2) 欲将读写位置移到文件尾时: lseek(fd,0,SEEK_END); (3) 想要取得目前文件当前位置时: lseek(fd,0,SEEK_CUR);

返回值:返回对文件开头的偏移量字节,若出错,则返回-1 理解:将文件读写指针相对whence移动offset个字节

示例代码:

#include #include #include #include #include #include #include int main(){ int fd; char *buf = "this is a boy"; fd = open("./file1",O_RDWR); if(fd == -1){ printf("open file1 fauled\n"); fd = open("./file1",O_RDWR|O_CREAT,0600); if(fd > 0){ printf("create file1 success!\n"); } } int n_write = write(fd,buf,strlen(buf)); if(n_write != -1){ printf("write %d byte to file1\n",n_write); } lseek(fd,0,SEEK_SET); //把光标位置移动到文件的头部 char *readBuf; readBuf = (char *)malloc(sizeof(char)* n_write); int n_read = read(fd,readBuf,n_write); printf("read %d, context: %s\n",n_read,readBuf); close(fd); return 0; } 2. lseek()函数计算文件的大小 #include #include #include #include #include #include #include int main(){ int fd; char *buf = "this is a boy"; fd = open("./file1",O_RDWR); int filesize = lseek(fd,0,SEEK_END); //光标移动到文件的尾端 printf("file's size is : %d\n ",filesize); close(fd); return 0; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3