Linux系统调用四、lseek()函数详解

本文详细介绍了Linux系统调用中的lseek()函数,包括其用于移动文件读写位置、计算文件大小及拓展文件大小的用法。通过案例分析,解释了为何在写入文件后需要使用lseek()来调整读写位置,以及如何利用lseek()计算文件大小。同时,指出仅调用lseek()扩展文件大小而不进行写操作不会保存扩展内容,需要后续写入操作来保存扩展部分。
摘要由CSDN通过智能技术生成

??文章目录


1. 案例:写文件并把写入内容打屏

我们可以通过上一节所讲的read()和write()函数来实现向一个文件中写入内容并把写入内容打印到屏幕的功能。

/************************************************************
  >File Name  : readandprint.c
  >Author     : QQ
  >Company    : QQ
  >Create Time: 2022年05月13日 星期五 12时11分44秒
************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

#define BUF_MAX 512 /*buf缓冲区最大值*/

/*向中文件写入数据并把写入内容打印到标准输出*/
int main(int argc, char* argv[])
{
	if(argc < 2)
	{
		printf("not fount file name");
		return -1;	
	}
	int fd = open(argv[1], O_RDWR | O_CREAT);
	write(fd, "hello linux...", 15);
	char buf[20];
	memset(buf, 0, sizeof(buf));
	int read_size = read(fd, buf, sizeof(buf));
	if(read_size > 0)
	{
		write(STDOUT_FILENO, buf, read_size);	/*STDIN_FILENO STDERR_FILENO*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值