c语言中lseek函数,lseek函数解决方法
C/C++ codeint fd, tmpfd, ret;
fd = open("qqq", O_RDWR | O_CREAT, 0644);
if (fd < 0)
{
printf("error!\n"); return 0;
}
tmpfd = fileno(tmpfile()); // 创建临时文件并返回临时文件的文件描述符
if(tmpfd < 0){
printf("create temp file error!\n"); return 0;
}
ret = write(tmpfd, buf, strlen(buf)); // 将准备写入文件的数据先写到临时文件中
if (ret < 0)
{
printf("write error!\n"); return 0;
}
if (lseek(fd, 0, SEEK_SET) == -1) // 把文件读写指针移动到文件开头
{
printf("lseek error!\n"); return 0;
}
do{ // 将剩余的数据先从原文件中拷贝出来到临时文件中
ret = read(fd, buf, sizeof(buf)); // 先将数据从原文件中读出
if (ret < 0)
{
printf("read error!\n"); return 0;
}
if (write(tmpfd, buf, ret) != ret) // 写入到临时文件中
{
printf("write error!\n"); return 0;
}
}while(ret > 0);
if (lseek(tmpfd, 0, SEEK_SET) == -1) // 把临时文件读写指针移动到文件开头
{
printf("lseek error!\n"); return 0;
}
if (ftruncate(fd, 0) == -1) // 把原文件内容清除
{
printf("ftruncate error!\n"); return 0;
}
if (lseek(fd, 0, SEEK_SET) == -1) // 把临时文件读写指针移动到文件开头
{
printf("lseek error!\n"); return 0;
}
do{ // 将新加数据+原有数据拷贝到原来的文件中
ret = read(tmpfd, buf, sizeof(buf)); // 先将数据从临时文件中读出
if (ret < 0)
{
printf("read error!\n"); return 0;
}
if (write(fd, buf, ret) != ret) // 写入到原文件中
{
printf("write error!\n"); return 0;
}
}while(ret > 0);
close(tmpfd);
c语言中lseek函数,lseek函数解决方法相关推荐
- C 语言中 char[] 的操作函数
C语言中char[]的操作函数 1.赋值操作 在C语言中,char型数组是不可以直接赋值的.例如在如下的代码中,会得到错误: char c1[20] = "women"; char ...
- c语言printf函数的作用,c语言中printf用法及其函数定义
c语言中printf用法及其函数定义 发布时间:2020-04-09 10:51:14 来源:亿速云 阅读:354 作者:小新 今天小编给大家分享的是c语言中printf用法及其函数定义,很多人都不太 ...
- Button中command后面函数添加参数解决方法
Button中command后面函数添加参数解决方法 参考文章: (1)Button中command后面函数添加参数解决方法 (2)https://www.cnblogs.com/smart-ziha ...
- php war,PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
本文实例讲述了PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法.分享给大家供大家参考.具体分析如下: 今天在一朋友服务器测试一个网站时发现我在测试ph ...
- VS使用scanf函数报错解决方法
VS使用scanf函数报错解决方法 首先来看一段很简单的C语言代码 #include<stdio.h> int main(void) {char s[10];scanf("%s& ...
- laravel5.5 __construct函数 无法使用session() 解决方法和实例
laravel5.5 __construct函数 无法使用session() 解决方法和实例 参考文章: (1)laravel5.5 __construct函数 无法使用session() 解决方法和 ...
- Oracle中wm_concat函数报错解决方法
Oracle中wm_concat函数报错解决方法 参考文章: (1)Oracle中wm_concat函数报错解决方法 (2)https://www.cnblogs.com/52net/archive/ ...
- 关于VS Code中C文件调用其他C文件函数失败的解决方法
关于VS Code中C文件调用其他C文件函数失败的解决方法 在main.c文件中添加 #include <windows.h> 头文件,可以解决.
- 微信小程序JSjavascript中的Math.pow()函数负数开立方解决方法
微信小程序JSjavascript中的Math.pow()函数负数开立方解决方法 Math.pow()函数是不能负数开立方的,会返回Null,因为对于计算机而言,负数开三次方是一个复数(实际上负数开三 ...
- php fopen函数 返回值,php中fopen函数失败的解决方法
php中fopen函数失败的解决方法 发布时间:2021-03-29 12:26:30 来源:亿速云 阅读:86 作者:小新 这篇文章将为大家详细讲解有关php中fopen函数失败的解决方法,小编觉得 ...
最新文章
- 一起谈.NET技术,ASP.NET MVC Membership 权限 漫谈
- ipython和python怎么用_如何使用IPython重新加载和自动加载?
- 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动
- 不学好css模型的怎么入山门?师傅与徒弟的真实独白
- 星级评分--演进式部署
- ubuntu 18.04 安装 中文 拼音 输入法
- python中实现switch
- gridview 导成Excel
- CVE-2020-0601漏洞详细分析
- 集成产品开发过程及其概念模型
- 模拟电路设计经典教材推荐
- 计算机的次要功能,FRM考试时所用计算器的操作指南
- win7怎么清理java缓存文件夹_win7c盘内存清理最彻底的方法
- 五.从卡门涡街看FLUENT设置依据
- 电脑测网速c语言,C层实现多线程测网速
- svg和css3创建环形渐变进度条
- dcmtk读取DICOM并进行体绘制渲染
- php 按汉字拼音排序,php 数组按中文拼音排序
- 基于Socket、OpenCV和MFC实现的网络实时视频监控
- 《卓有成效程序员》第四章