- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Linux 中运行程序时遇到段错误错误。在 AIX 中工作正常。
我在 gdb 中收到消息段错误...
程序接收信号SIGSEGV,段错误fclose@@GLIBC_2.2.5 () 来自/lib64/libc.so.6
<pre><code>
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<time.h>
#include<sys/types.h>
#define _Monthly "99992016"
FILE *source,*list,*wlist,*movlist,*biflis;
char sf[85],sf1[85];
char filename[85],filename1[85],name[140],fstring[140],iname[140],account[85];
char *ptr="",*st="";
int i,len,x,y,z,BIF_COUNT,PIN_COUNT,YOUR_MONTHLY_COUNT,count1,count2;
char suffix[4]=".pin";
char *nptr=" ";
FILE *biflis;
int p;
int main()
{
long t;
system("ls -l|sort -n >test.txt");
system("cat test.txt|grep BH|awk '$5 <= 1610612736 {print $9}' > bhatia.out");
system("cat test.txt|grep BH|awk '$5 > 1610612736 {print $9}' > bhatia1.out");
if((list=fopen("bhatia.out","r"))==NULL)
{ printf("\n Error opening bhatia.out\n\n "); return 0; }
if((biflis=fopen("biffile_account.lis","w"))==NULL)
{ printf("\n Error opening biffile_account.lis file\n\n");
return 0; }
BIF_COUNT=0;
PIN_COUNT=0;
YOUR_MONTHLY_COUNT=0;
count1=0;
while((fgets(filename,85,list))!=NULL)
{
ptr=filename;
for(i=0;*ptr;i++,ptr++)
{
sf[i]=*ptr;
}i--;
sf[i]='\0';
if((source=fopen(sf,"r"))==NULL)
{
printf("\nError Opening Source File %s\n",sf);
return 0;
}
fseek(source,0,SEEK_END);
fseek(source,-90,SEEK_CUR);
while((fgets(name,140,source))!=NULL)
{
st=strstr(name,_Monthly);
count2=0;
if(st!=NULL)
{
YOUR_MONTHLY_COUNT++;
strcpy(account," ");
count2++;
//sprintf(fstring,"%s~%s",filename1,account);
}
count1= count2 + count1;
}
fclose(source);
if( count1 > 0 )
{
printf(" %s GBIF file has the correct footer having ",sf,source);
printf(" %d number of correct bills \n",count1);
}
else
{
printf(" %s GBIF file has the footer missing and have incorrect bills \n",sf,source);
//printf(" %d number of in incorrect bills \n",count1);
}
count1=0;
BIF_COUNT++;
}
</code></pre>
最佳答案
这是一个主要错误:
printf(" %s GBIF file has the correct footer having ",sf,source);
您还需要检查此处声明的所有变量:
FILE *source,*list,*wlist,*movlist,*biflis;
其中每一个都需要调用一次 fopen 和调用一次 fclose,否则应将其删除。另外,您还声明 FILE *biflis;
两次。
而且根本不需要使用全局变量。
关于c - fclose 上的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38185399/
在我的程序中,我可能会关闭一个已经关闭的文件。当我对一个已经关闭的文件执行 fclose 时会发生什么? 如果不能这样做,如何知道文件是关闭还是打开? 最佳答案 使用同一流调用 fclose 两次是未
为什么如果我们使用 fread() 读取文件并且不包含 fclose 来关闭相同的相同文件引用但它仍然有效。 但是,如果我们忘记在 fwrite 之后包含 fclose,那么它就不起作用。即没有写入文
我在 Linux 中运行程序时遇到段错误错误。在 AIX 中工作正常。 我在 gdb 中收到消息段错误... 程序接收信号SIGSEGV,段错误fclose@@GLIBC_2.2.5 () 来自/li
是否需要检查fclose的返回值?如果我们成功打开了一个文件,它关闭失败的可能性有多大? 最佳答案 当您fwrite到文件时,它实际上可能不会写入任何内容,它可能会保留在缓冲区中(FILE对象内部)。
假设我正在写入文件,但我想通过关闭机器电源来结束写入,这会是 fclose() 函数没有被调用的问题吗? FILE *f = fopen("file.txt", "w"); if (f == NULL
我正在尝试读取一个整数文件,其中包含文件中的整数个数作为第一个整数,但是当我在读取文件后尝试关闭该文件时,出现了段错误。 我读到,如果文件指针为空并且您尝试关闭它,则会出现段错误。但是,我在关闭它之前
我有以下 C++ 代码来将 shorts 写入 headless 音频文件: vectornShrtDecoded; nShrtDecoded.resize(iCountDecodedShorts);
我的程序有问题。使用函数 fclose() 后出现错误: "* Error in `./server': corrupted double-linked list: 0x000000000251a23
我在这段代码中遇到问题,它成功执行直到到达 fclose(fp) 语句,它崩溃了。 void read_file(const char *filename) { FILE *fp; i
为什么这个简单的函数会导致seg fault? int main(int argc, char** argv) { FILE* file1; file1 = fopen(argv[ar
每当我在最后使用 fclose(outputFile); 运行我的程序时,我都会收到错误消息。 glibc 检测到...损坏的双链表 不过,令人困惑的是,我在它的正上方有 fclose(inputFi
我最近构建了一个包装库 gorilla-audio 的 Ruby C 扩展。该库足够简单,代码干净,占用内存等。但是,当我尝试将库加载到 ruby 中时,它会抛出一个错误,内容如下: The pr
我正在编写一个函数 (*rwObjects()),它将读取格式化文件并保存它的字符串,一次一个对象。不幸的是,它对我的研究有限制 - stdio.h、stdlib.h 和 string.h 几乎是
我已经通过评论缩减了程序,缩减为: #include #include int main(int argc, char *argv[]) { FILE * in; in = fop
这个问题在这里已经有了答案: What happens if I don't call fclose() in a C program? (4 个答案) 关闭 7 年前。 根据我的阅读,fclose
我有两个函数。第一个函数是以写入模式打开一个文件并写入一些内容,然后关闭它。 FILE *fp = fopen("file.txt", "w"); //writing itnot file using
我尝试在 Linux 机器上使用 c++ fopen、fwrite、fflush 和 fclose 函数创建大约 4 GB 的文件,但我观察到 fclose() 函数需要很长时间才能关闭文件,大约需要
下面是 fclose 导致错误的源代码的一小部分?此函数并不总是被调用,在某些特定情况下会调用此函数。 int write_into_file (char * file_name) {
我一直在尝试在 C 中进行简单的文件处理,我想确保可以尝试使用此文件访问该文件 #include main() { CheckFile(); } int CheckFile() { i
是否需要检查fclose的返回值?如果我们成功打开了一个文件,它关闭失败的可能性有多大? 最佳答案 当您fwrite 到一个文件时,它实际上可能不会写任何东西,它可能会留在缓冲区中(在 FILE 对象
我是一名优秀的程序员,十分优秀!