Ganapathy
Ganapathy

Reputation: 543

How to check the given file is binary file or not in C programming?

I'm trying to check the given file is binary or not. I refer the link given below to find the solution, How can I check if file is text (ASCII) or binary in C

But the given solutions is not working properly, If I pass the .c file as argument, Its not working, It gives wrong output.

The possible files I may pass as argument:

a.out

filename.c

filename.txt

filename.pl

filename.php

So I need to know whether there is any function or way to solve the problem?

Thanks...

Note : [ Incase of any query, Please ask me before down vote ]

Upvotes: 1

Views: 1774

Answers (2)

KeylorSanchez
KeylorSanchez

Reputation: 1330

Depending on your OS, binary files begin with a header specifying that they are an executable and contain several informations about them (architecture, size, byte order etc.). So by trying to parse this header, you should know if a file is binary or not. If you are on mac, check the Mach-O file format, if you are on Linux, it should be ELF format. But beware, it's a lot of documentation.

Upvotes: 1

Magisch
Magisch

Reputation: 7352

You need to clearly define what a binary file is for you, and then base your checking on that.

If you just want to filter based on file extensions, then create a list of the ones you consider binary files, and a list of the ones you don't consider binary files and then check based on that.

If you have a list of known formats rather then file extensions, attempt to parse the file in the formats, and if it doesn't parse / the parse result makes no sense, it's a binary file (for your purposes).

Upvotes: 2

Related Questions