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函数失败的解决方法,小编觉得 ...
最新文章
- 当Swin Transformer遇上DCN,效果惊人!
- SAP Backgroud job
- wincc 报警记录 mysql_wincc查询历史报警记录,归档数据-工业支持中心-西门子中国...
- mysql中利用sql语句修改字段名称,字段长度等操作(亲测)
- 键盘改键软件_一秒五键,一键三招,万种光污染,杜伽K310樱桃轴机械键盘感受...
- Java笔记-AES加解密(PKCS7padding可用)
- SQL语法集锦一:SQL语句实现表的横向聚合
- 人脸对齐(七)--JDA算法
- CnOpenData中国高等学校名单数据
- 树莓派3 串口 / 模拟串口
- 飞机大战源码php,飞机大战源码 - 丁小未的个人页面 - OSCHINA - 中文开源技术交流社区...
- 世上最伟大的十个公式,薛定谔方程排名第六,质能方程排名第五
- 关于java变量命名,介绍阿里JAVA命名规范及IDEA实时检测插件的使用以及CODELF取名神器
- 升阳云ERP,基于开源框架设计的三大特点
- 虚拟机中左键不能使用,鼠标滑轮和右键正常-解决方案
- Java整点报时定时器
- 商品库存周转率详解及计算方式
- 如何实现erp外网连接?
- 计算机剪切文件保存在哪里,电脑剪切的文件怎么恢复
- 仙剑五手游服务器维护,新仙剑奇侠传游戏进不去怎么办 游戏进不去解决方法...