Da página man do comando file
,
file
na verdade executa 3 testes para determinar o tipo de arquivo.
Primeiro teste
The filesystem tests are based on examining the return from a stat(2) system call.
Segundo teste
The magic number tests are used to check for files with data in particular fixed formats.
Terceiro teste
The language tests look for particular strings (cf names.h) that can appear anywhere in the first few blocks of a file. For example, the keyword .br indicates that the file is most likely a troff(1) input file, just as the keyword struct indicates a C program.
A saída do comando file
geralmente é baseada no resultado de qualquer um dos testes bem-sucedidos.
Agora, assumindo que o programa C ++ é iniciado assim e o terceiro teste é bem-sucedido,
#include <iostream.h>
bla
bla
De acordo com o terceiro teste, a palavra-chave #include
especifica especificamente que é do tipo C , embora tenhamos um programa CPP em mãos. Agora, quando eu verificar,
$ file example.cpp
example.cpp: ASCII C program text
Agora, os conceitos de orientação a objetos são específicos do C ++. Vamos criar um arquivo específico para o C ++ .
Eu inicio meu programa C ++ como
Class something
{
}
bla
bla
Agora, quando eu emitir
$ file example.cpp
A saída é
example.cpp: ASCII C++ program text