当前位置:  技术问答>linux和unix

使用stat函数遇到的问题,请诸位高人指点

    来源: 互联网  发布时间:2017-03-15

    本文导语:  本帖最后由 human_blue 于 2012-09-12 21:04:28 编辑 在Linux系统中, 源代码如下, 功能是想查找record文件夹下的文件名, 以及文件的大小. 但是函数运行结束后,程序却自动退出了, 而如果把stat部分的代码屏蔽掉, 则程序就正...

本帖最后由 human_blue 于 2012-09-12 21:04:28 编辑
在Linux系统中, 源代码如下, 功能是想查找record文件夹下的文件名, 以及文件的大小. 但是函数运行结束后,程序却自动退出了, 而如果把stat部分的代码屏蔽掉, 则程序就正常接着运行下去. 请各位高人讲解其中的原因.

int FileList()
{
int      i;
int      a, b;
int      result;
char   temp[50];
long   temp_size;
        char   list_name[40][50];
        long   list_size[40];
DIR    *dir_info;
struct dirent    *dir_file;
struct stat    *buf; 

i = 0;

dir_info = opendir("./record/");
if( dir_info != NULL )//打开目录成功
{
if( (dir_file = readdir(dir_info)) == NULL)  
{
show_info( "finding records error!" );
return i;
}      
while( (dir_file = readdir(dir_info)) != NULL )
{
             
                  if( (strcmp(dir_file->d_name, "..") == 0) || (strcmp(dir_file->d_name, ".") == 0) )//忽略这两个特殊项
continue;

sprintf( list_name[i], "%s", dir_file->d_name );

sprintf( temp, "./record/%s", dir_file->d_name );
result = stat( temp, buf );
if( result != 0 )
{
show_info("Records initialization error!");
closedir(dir_info);
return i;
}
else
list_size[i] = buf->st_size; 

i++;
} // end of while
  
        closedir(dir_info); //使用完毕,关闭目录指针。
        }
}

|
Sorry,是我没讲明白。
struct stat *buf;没有申请空间,加上
buf = (struct stat *)malloc(sizeof(*buf));
if(!(buf)) return -1;
...
free(buf);//用完要释放
建议楼主先看书。

|
struct stat *buf; 

buf是指针,内存呢? 没学好C就学Linux了?

    
 
 

您可能感兴趣的文章:

  • 各位高人,请问在SCOUNIX下怎样使用USB设备呀,比如说鼠标
  • 请高人指点,busybox使用不同链接名实现不同功能的原理?
  • 为什么使用gcc编译出错。高人帮忙。。。。
  • 请教高人:同一个套接字(做客户端)连接到server后在不同子进程里使用能否不采取互斥措施收发?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 怎样在使用curses字符串输出函数或字符输出函数时,隐藏光标
  • php使用socket_bind()函数绑定IP地址
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • 请问在REDHAT下使用gcc编译器用的是什么函数库,函数库的资料应该上哪儿找?
  • 请问有没头函数<pthread.h>和<signal.h>里的函数的详细功能介绍?和使用方法???
  • getaddrinfo这个函数是从哪里获取信息的?使用这个函数究竟哪里方便了。。
  • 很菜,shell脚本中怎么写函数,怎么使用带参数的函数???
  • Python过滤函数filter()使用自定义函数过滤序列实例
  • 急:unix的shell脚本中,定义了一个函数getDate(),在后面的执行命令参数用要使用这个函数的返回值,应该怎么写?
  • 请问如何在一个函数内部定义的一个新类中使用函数里声明的变量
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • 在shell中使用mail函数的时候如何使用变量
  • 调用同一个函数建立的多个线程,如何使用函数的数据?
  • 关于如何使用内核函数的问题
  • C语言应用程序使用的函数来源于libc库, Libc库中的函数是在哪里实现的??
  • 线程函数中使用setpriority函数的作用
  • 使用tcgetattr函数与tcsetattr函数的问题
  • 一个数据库函数的使用?
  • linux 下使用 sendmsg 函数 udp 通信问题???
  • 急问:Linux程序中,使用system函数的几个问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 菜鸟求救:在linux下安装jdk失败。初次使用linux,还请各路大虾指点指点,不甚感激!!!
  • 三层结构很简单,但怎么正确使用请高手指点!!!!谢谢
  • 如何使用kdevelop创建动态共享库程序,请高手指点
  • 请高手指点在WindowsXP下面使用 VMware ?
  • sed里面变量的使用,欢迎大家讨论指点
  • 紧急:请问有谁会使用Free BSD操作系统,请给予指点
  • JDK1.4下使用WindowsLookFeel居然中文全部变成方框!请高手指点
  • 请各位使用过Linux的进来看看,指点指点(在线等待)! 谢谢
  • 一个关于使用Runtime的问题,还请大家指点一二?
  • 哪位高手指点一下:使用libxml2是否可以动态生成xml文件?
  • 我刚刚安装了Fedora7,但却没有鼠标指针,但却可以使用.不知道为什么?请求高手指点?谢谢!
  • 请问,如何在linux 中使用cout<<,cin>>,本人新手,请各位高手详悉指点 :)
  • 在linux下使用gtk+,如何使按钮有底色.请高手指点
  • 有没有使用过Linux下线程池技术的高手,请为我指点迷津!!!
  • 在c++中,是否用方法可以将使用cout输出到屏幕上的字符给清除掉?请高手指点(高分求助)
  • Debian 5上使用easyeclipse-lamp 提示如此错误是何解?望高手指点在下!
  • 请各位高手指点我使用Linux C编程的操作事项
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • 简单小问题,指点迷津。不是一个包中类可以不引用随便调用么?我在jb使用中,用自己做的类生成对象,怎么说找不到?
  • 我是visualage for java 的使用者,我觉得他很好用,但是为什么论坛里大家主要是谈论jbuilder,望高手指点一二?
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • Python不使用print而直接输出二进制字符串
  • c#中SAPI使用总结——SpVoice的使用方法
  • Office 2010 Module模式下使用VBA Addressof
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3