问题标签 [fclose]
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 - fclose() 导致分段错误
我有一个正在解析的制表符分隔的文本文件。它的第一列包含格式为 的字符串chrX
,其中X
表示一组字符串,例如“1”、“2”、...、“X”、“Y”。
在解析文件时,这些每个都存储在char*
被调用的 中。chromosome
文本文件按字典顺序在第一列排序,即,我将有许多行以“chr1”开头,然后是“chr2”等。
在每个“chrX”条目中,我需要打开另一个与该条目关联的文件:
我的功能openSourceFile
定义如下:
问题是我的应用程序在以下行退出时出现从第一个染色体到第二个染色体(从chr1
到chr2
)的分段错误,我关闭了我打开的第一个染色体文件:
我知道我没有传递fclose
NULL 指针,因为直到出现分段错误,我才从这个文件中读取数据。我什至可以将它包装在一个条件中,但我仍然得到错误:
此外,我知道openSourceFile
有效(至少对于chr1
,在设置 的第一个文件句柄时FILE*
),因为我的应用程序解析行并正确地从源文件chr1
中读取数据。FILE*
这个fclose
调用导致分段错误发生的原因是什么?
c - fclose()/pclose() 可能会阻塞某些文件指针
在ing 其文件描述符阻塞之后调用fclose()
此处,直到子进程结束(可能是因为流已经结束)。dup()
但是,通过手动执行pipe()
, fork()
, execvp()
,popen()
然后dup()
ing 管道的读取文件描述符,关闭原始文件不会阻塞。
为什么会发生这种情况,我该如何关闭FILE *
返回popen()
并在其位置使用文件描述符?
更新:
我知道文档说要使用pclose()
,但是fclose()
也有块。此外,我在 glibc 代码中四处寻找,然后pclose()
只调用fclose()
. fclose()
无论使用或使用,行为都是相同pclose()
的。
multithreading - Multiple file descriptors to the same file, C
I have a multithreaded application that is opening and reading the same file (not writing). I am opening a different file descriptor for each thread (but they all point to the same file). Each thread then reads the file and may close it and open it again if EOF is reached. Is this ok? If I perform fclose() on a file descriptor does it affect the other file descritptors that point to the same file?
c - 不能在输出流上使用 fclose,输入流很好
每当我在最后运行我的程序fclose(outputFile);
时,都会出现错误。glibc 检测到...损坏的双链表
不过,令人困惑的是,我在它的fclose(inputFile);
正上方,它工作正常。有什么建议么?
c - 可以从两个线程并行调用 fwrite 和 fclose 以获得相同的文件描述符吗?
如果fwrite
&fclose
从两个线程并行调用相同的文件描述符会发生什么?
c - 什么会导致 fwrite 挂起?
我的代码使用以下堆栈挂起 fwrite:
这似乎发生在 solaris 中。
我能想到的唯一不正确的事情是我的代码可能会尝试在用于执行 fwrite 的同一个 FILE 指针上执行并行 fclose。如果发生并行 fclose 会导致这种堆栈吗?
但是,我不确定并行 fclose 调用是否真的发生了?
这里可能是什么问题?
c++ - 使用 fclose() 关闭文件但文件仍在使用中
我在使用我的程序删除/覆盖文件时遇到问题,该程序也被我的程序使用(读取)。问题似乎是因为我的程序正在从文件(output.txt)中读取数据,它使文件处于“使用中”状态,这使得无法删除或覆盖文件。
我不明白为什么文件保持“使用中”,因为我在使用 fclose() 后关闭了文件;
这是我的代码:
我使用 fclose() 关闭文件,但我的程序仍在使用该文件,直到我的程序完全关闭。
释放文件以便可以删除/覆盖的解决方案是什么?
实际上,我的代码不是没有结束的循环;)
提前致谢!
马可
更新
就像问我的代码的一部分,它也会生成“正在使用”的文件。这不是一个循环,这个函数是从 main() 调用的;
这是一段代码:
while 循环解析文件。output.txt 包含 9 个变量的集合,集合的数量是未知的,但总是以 9 个为一组。
output.txt 可以包含例如:0,1,2,3,4,5,6,7,8,8,7,6,5,4,1,2,3,0
更新 2
代码:
很抱歉再次使用 pre 但我没有得到这个网站的格式:(
php - 使用 fsockopen 重写一些代码以使用 curl 代替
我的主机不允许 fsockopen,但它允许 curl。我很高兴使用 cli 中的 curl,但不必在 PHP 中使用太多。我如何改用 curl 来写这个?
$xmlrpcReq 和 Length 在前面定义。
非常感谢!
c - fopen()、fclose() 究竟是如何工作的?
我只是想知道函数 fopen、fclose、socket 和 closesocket。调用 fopen 或打开套接字时,到底发生了什么(尤其是内存方面)?
打开文件/套接字而不关闭它们会导致内存泄漏吗?
第三,套接字是如何创建的,它们在内存方面看起来如何?
我还对操作系统(Windows)在读取套接字和发送数据方面的作用感兴趣。
c++ - 程序在 fclose() 上崩溃
我的程序在这部分代码上崩溃:
它不打印任何东西,当我写这一行时:
它也不打印任何东西,只是让我的程序崩溃,没有进一步的评论。
在我的程序的早期部分,我用这一行初始化文件:
什么会导致我的程序崩溃?