问题标签 [file-pointer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - fscanf 是否将传递的文件指针向前移动?
我在某处看到了这段代码:
我希望这将继续在无限循环中打印文件的第一个单词。我相信将文件指针作为输入只是为了获取应该读取输入的点,并且 fscanf 将有一个本地文件指针,它将用于读取文件。
但是在运行时我意识到它实际上打印了整个文件。我能得出的唯一结论是,在读取第一个输入后,它实际上将传递的文件指针向前移动,否则它会一次又一次地继续打印第一个单词。
我看到了fscanf 的man 文档,但在阅读后找不到有关文件指针移动的任何内容。
有人可以解释或提供指定传递的文件指针在读取后实际移动的来源吗?
c - 在 C 中缓存文件指针
我需要在我的程序中缓存文件指针,但问题是我可能有多个线程访问该文件指针缓存。例如,如果 thread1 请求文件指针,并且发生缓存未命中,则调用 fopen 并缓存指针。现在,当线程 2 到达并发生缓存命中时,两个文件共享导致错误的读/写指针。我想到的一些事情——
- 我可以跟踪文件的使用时间,但目前我不知道它什么时候发布,并且包含此功能会干扰我的设计
- 如果发生命中,我可以发送文件指针的副本,但我不知道这样做的任何方法,以便这两个副本不共享读/写位置
我应该如何进行?
c++ - C++ fstream 继续读取相同的前 5 行?
我真的很沮丧。我正在尝试读取具有以下内容的 txt 文件:
使用此代码:
输出将是无休止的相同接触
我还尝试了这个版本的 while 循环:
由于某些原因,编译器甚至没有进入循环。它只会跳转到返回 0;
c - fopen 导致段错误
如标题所示。简单的练习,尝试学习结构和其他基本的 c 功能。这是一个包含 char[] 和数字的结构,我尝试将其值保存在文件中并读回。我通过 fopen() 阅读了很多关于 Seg.fault 的主题,但找不到我的错误!有人知道为什么 fopen() 在这种情况下会崩溃吗?欢迎对此事提出任何建议和批评!
Segfault 发生的函数是load()
:
整个代码,主要是在最后:
电话收听.c
c - 不兼容的指针类型将“char*”传递给“FILE*”类型的参数(又名“struct__sFILE*”)
我有一个令人沮丧的问题。我收到以下错误:
不兼容的指针类型将 'char*' 传递给 FILE*' 类型的参数(又名 'struct__sFILE*')”。
任何人都知道我将如何解决这个问题?
c# - C# 中的部分文件读取
我正在开发一个需要读取不断更新的文本文件的应用程序。我需要读取文件直到文件结束(在那一刻),并且需要记住这个位置以便我下次读取文件。我计划在 C#.net 中开发这个应用程序。我如何执行这些部分读取并记住位置,因为 C# 在文件处理中不提供指针?
编辑:文件每 30 秒更新一次,新数据附加到旧文件中。我尝试保持先前读取的长度,然后从该位置读取数据,但两个应用程序无法同时访问该文件。
c - 文件指针或流指针背后的概念是什么?
我知道指针是一个存储另一个变量地址的变量。所以我理解了 char 类型指针、整数类型指针的概念,当我们向指针添加 1 时会发生什么等。但我没有得到文件指针背后的真正概念。为什么我们不能像在字符数据类型的情况下那样直接指向它们?例如,考虑一个包含内容的文件:
让'ptr'指向这个文件。为什么我们不能使用技术 ptr 指向 'H',(ptr+1) 指向 'e',(ptr+2) 指向 'l' 等等。如果我的问题很愚蠢,请原谅,如果我理解真正的概念,有时会变得很清楚。我认为这个文件实际上存储在内存中,就像字符串存储在内存中一样。(我知道 fscanf() 函数和所有)
c - 如何将文件指针移动到文本文件中的下一个单词?
我有一个程序要求我从单词 N 开始,散列下一个 N+M 单词(连接并通过另一个函数完成,因此原始指针不会移动),然后将指向 N 的 FILE 指针递增到下一个单词。
我认为这样做的唯一方法是增加 FILE 指针直到找到一个空格,然后进一步增加直到我们找到下一个单词的第一个字符。这是必要的,因为我正在阅读的文件可能在单词之间有多个空格,与具有相同单词内容但单个空格的文件相比,这不会导致匹配的字符串。
然后,此方法将需要ungetc()
,因为我们将从流中获取下一个单词的第一个字符。
关于不同实现的任何想法,或者我是否完全受限于这种方法?
c - 两个线程重叠 FILE* 地址范围(?)
我有一个奇怪的问题,到目前为止我还没有遇到过。
我创建了两个线程,每个线程基本上都是打开aaFILE*
把一些数据写入磁盘。现在,写入部分本身不会导致运行时问题(虽然输出似乎已损坏),但是当我关闭这两个单独线程中的两个不同时,所有的地狱都会崩溃。 FILE*
我看到一个线程_IO_buf_base
指向,0x7ffff66d3000
而另一个线程_IO_write_end
指向0x7ffff66d3000
. 也许这就是 fclose 失败的原因:
我很确定我不是第一个搞砸的人。任何人都可以帮忙吗?我在 Google 上找不到足够清晰的参考资料。
两个线程的调试器屏幕截图:
c - 如果两个文件指针指向同一个文件,关闭其中一个就足够了吗?
如果我有两个文件指针并执行以下操作:
相等操作是否有效,如果有效,最后一行是否也会关闭 f1?