c/c++语言开发共享用O_RDWR打开 – 如何覆盖?

我想读取一个文件并更改其内容并将其写回文件。

我使用open来读取文件如下:

 bfd = open(m_file_name.c_str(), O_RDWR) 

但是当我写作时,它有点附加到旧的。 我怎么能覆盖它呢?

    你可以用lseek(2)

     bfd = open(m_file_name.c_str(), O_RDWR); // read your file lseek(bfd, 0, SEEK_SET); // do whatever manipulation & write file 

    如果您的文件现在的大小小于原始文件,则需要将大小截断为新大小,或者在结尾处保留文件旧端的字节。 如果它更大,文件应该在您编写时自动增长。

    如果你想在特定的位置写作,你必须寻求lseek

    你不是要覆盖整个文件,对吧? 只是其中的一小部分? 如果您试图覆盖整个文件,那么这是一个糟糕的方法。

      以上就是c/c++开发分享用O_RDWR打开 – 如何覆盖?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522312.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐