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函数解决方法相关推荐

  1. C 语言中 char[] 的操作函数

    C语言中char[]的操作函数 1.赋值操作 在C语言中,char型数组是不可以直接赋值的.例如在如下的代码中,会得到错误: char c1[20] = "women"; char ...

  2. c语言printf函数的作用,c语言中printf用法及其函数定义

    c语言中printf用法及其函数定义 发布时间:2020-04-09 10:51:14 来源:亿速云 阅读:354 作者:小新 今天小编给大家分享的是c语言中printf用法及其函数定义,很多人都不太 ...

  3. Button中command后面函数添加参数解决方法

    Button中command后面函数添加参数解决方法 参考文章: (1)Button中command后面函数添加参数解决方法 (2)https://www.cnblogs.com/smart-ziha ...

  4. php war,PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法

    本文实例讲述了PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法.分享给大家供大家参考.具体分析如下: 今天在一朋友服务器测试一个网站时发现我在测试ph ...

  5. VS使用scanf函数报错解决方法

    VS使用scanf函数报错解决方法 首先来看一段很简单的C语言代码 #include<stdio.h> int main(void) {char s[10];scanf("%s& ...

  6. laravel5.5 __construct函数 无法使用session() 解决方法和实例

    laravel5.5 __construct函数 无法使用session() 解决方法和实例 参考文章: (1)laravel5.5 __construct函数 无法使用session() 解决方法和 ...

  7. Oracle中wm_concat函数报错解决方法

    Oracle中wm_concat函数报错解决方法 参考文章: (1)Oracle中wm_concat函数报错解决方法 (2)https://www.cnblogs.com/52net/archive/ ...

  8. 关于VS Code中C文件调用其他C文件函数失败的解决方法

    关于VS Code中C文件调用其他C文件函数失败的解决方法 在main.c文件中添加 #include <windows.h> 头文件,可以解决.

  9. 微信小程序JSjavascript中的Math.pow()函数负数开立方解决方法

    微信小程序JSjavascript中的Math.pow()函数负数开立方解决方法 Math.pow()函数是不能负数开立方的,会返回Null,因为对于计算机而言,负数开三次方是一个复数(实际上负数开三 ...

  10. php fopen函数 返回值,php中fopen函数失败的解决方法

    php中fopen函数失败的解决方法 发布时间:2021-03-29 12:26:30 来源:亿速云 阅读:86 作者:小新 这篇文章将为大家详细讲解有关php中fopen函数失败的解决方法,小编觉得 ...

最新文章

  1. 一起谈.NET技术,ASP.NET MVC Membership 权限 漫谈
  2. ipython和python怎么用_如何使用IPython重新加载和自动加载?
  3. 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动
  4. 不学好css模型的怎么入山门?师傅与徒弟的真实独白
  5. 星级评分--演进式部署
  6. ubuntu 18.04 安装 中文 拼音 输入法
  7. python中实现switch
  8. gridview 导成Excel
  9. CVE-2020-0601漏洞详细分析
  10. 集成产品开发过程及其概念模型
  11. 模拟电路设计经典教材推荐
  12. 计算机的次要功能,FRM考试时所用计算器的操作指南
  13. win7怎么清理java缓存文件夹_win7c盘内存清理最彻底的方法
  14. 五.从卡门涡街看FLUENT设置依据
  15. 电脑测网速c语言,C层实现多线程测网速
  16. svg和css3创建环形渐变进度条
  17. dcmtk读取DICOM并进行体绘制渲染
  18. php 按汉字拼音排序,php 数组按中文拼音排序
  19. 基于Socket、OpenCV和MFC实现的网络实时视频监控
  20. 《卓有成效程序员》第四章

热门文章

  1. SAP:QUERY中SQ02增加选择屏幕权限控制
  2. 行间距和文本样式的设置
  3. 服务器端控件TextBox 设为只读属性后无法获取javascript给其赋的值
  4. 本地图书管理:通过calibre-web打造个人在线书城
  5. 产品经理:销售、协作和产品
  6. Linux| |Linux下执行各种命令所需要的权限
  7. USACO 2019 December Silver】MooBuzz
  8. 外链图片怎样搬到淘宝
  9. A. A pile of stones
  10. android渗透工具是什么意思,android渗透攻击工具合集