【发布时间】:2016-10-24 05:57:41
【问题描述】:
我正在尝试检查给定的文件是binary or not。
我参考下面给出的链接来找到解决方案,
How can I check if file is text (ASCII) or binary in C
但是给定的解决方案不能正常工作,如果我将.c 文件作为参数传递,它不能正常工作,它会给出错误的输出。
我可以作为参数传递的可能文件:
a.out
文件名.c
文件名.txt
文件名.pl
文件名.php
所以我需要知道是否有任何功能或方法可以解决问题?
谢谢...
注意:[如有任何疑问,请在投票前询问我]
【问题讨论】:
-
对你/你的任务来说什么是二进制文件?检查文件扩展名是否足够或是否需要解析文件。你也可以考虑提供你不工作的代码供社区检查。
-
不,我不会检查扩展名,我需要解析文件并发现文件是否为二进制文件。
-
我正在尝试在 c 中实现 'grep' 命令
-
您真的要检查文件中的每个字节以确保它在 ASCII 范围内吗?如果文件很大,它会花费你。 Unicode 和各种 UTF 编码呢?它们也是文本文件。还是一个主要是 ASCII 但包含一些非 ASCII 字节的文件?也可以考虑grep如何处理:unix.stackexchange.com/questions/19907/…
-
你在 Linux 上吗?如果是,只需使用命令“file
”并查看输出。然后,您可以使用 system() 从 C 程序中调用此命令。有关“文件”命令输出的更多详细信息,请参阅 man 或在此处查看 - linux.die.net/man/1/file
标签: c