C语言如何读取指定路径下的所有指定格式的文件?

C语言如何读取指定路径下的所有指定格式的文件?,第1张

用C语言读取目录中的文件名的方法:

1、如果是在window环境下,可以用一下方法:

使用stdlib.h头文件声明的system()函数

_CRTIMP int __cdecl system (const char*)

system("dir c:\\ /a:h /b >c:\\dir.txt")

调用系统命令dir,把c:目录下文件列表写入文件dir.txt中

2、使用dirent.h头文件中声明的opendir(),readdir()函数;

int main(int argc, char *argv[])

  DIR *directory_pointer 

    struct dirent *entry 

   

    if((directory_pointer=opendir("d:\\XL"))==NULL) 

        printf( "Error opening \n ") 

    else 

    { 

        while((entry=readdir(directory_pointer))!=NULL) 

        { 

          printf("%s\n",entry-> d_name)

        } 

        closedir(directory_pointer) 

       

    }

  system("PAUSE")

 return 0

}

3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数;

示例代码:

int main(int argc, char *argv[])

{

  long file

    struct _finddata_t find

    

     _chdir("d:\\")

     if((file=_findfirst("*.*", &find))==-1L)

  {

      printf("空白!\n")

     exit(0)

     }

     printf("%s\n", find.name)

     while(_findnext(file, &find)==0)

     {

          printf("%s\n", find.name)

     }

     _findclose(file)

  

  system("PAUSE")

     return 0

}

你是说开启safe_mode吗?

限制多了,速度自然慢

可以关闭的,影响不大~

以下设置不影响速度的,可以考虑~

(6) 关闭危险函数

如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是考虑进去。比如,我们觉得不希望执行包括system()等在那的能够执行命令的php函数,或者能够查看php信息的phpinfo()等函数,那么我们就可以禁止它们:

disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

如果你要禁止任何文件和目录的 *** 作,那么可以关闭很多文件 *** 作

disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir,rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown

以上只是列了部分不叫常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,就能够抵制大部分的phpshell了。

(7) 关闭PHP版本信息在http头中的泄漏

我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息斜路在http头中:

expose_php = Off

比如黑客在 telnet 80 的时候,那么将无法看到PHP的信息。

(8) 关闭注册全局变量

在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:

register_globals = Off

当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,那么就要用$_GET['var']来进行获取,这个php程序员要注意。

(9) 打开magic_quotes_gpc来防止SQL注入

SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,所以一定要小心。php.ini中有一个设置:

magic_quotes_gpc = Off

这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ' 转为 '等,这对防止sql注射有重大作用。所以我们推荐设置为:

magic_quotes_gpc = On

(10) 错误信息控制

一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示:

display_errors = Off

如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:

error_reporting = E_WARNING &E_ERROR

当然,我还是建议关闭错误提示。

(11) 错误日志

建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:

log_errors = On

同时也要设置错误日志存放的目录,建议根apache的日志存在一起:

error_log = /usr/local/apache2/logs/php_error.log

注意:给文件必须允许apache用户的和组具有写的权限。

读取的代码方式如下:

int main()

{

long file

struct _finddata_t find

_chdir("d:\\")

if((file=_findfirst("*.*", &find))==-1L)

{

printf("空白!\n")

exit(0)

}

printf("%s\n", find.name)

while(_findnext(file, &find)==0)

{

printf("%s\n", find.name)

}

_findclose(file)

return 0

}

用C语言读取目录中的文件名的方法:

1、如果是在window环境下,可以用一下方法:

使用stdlib.h头文件声明的system()函数,调用系统命令dir,把c:目录下文件列表写入文件dir.txt中

2、使用dirent.h头文件中声明的opendir(),readdir()函数;

3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11707740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存