M4
text/plain
Magic Bytes
Offset: 0
54 68 69 73 20 69 73 20 54 65 58 2C
The M4 file format is a general-purpose macro processor script originally designed by Brian Kernighan and Dennis Ritchie for Unix systems. It is widely used within the GNU Build System to generate configuration scripts and serves as a flexible template engine for text processing. Although inherently safe as plain text, these files define complex recursive macro expansions fundamental to software portability and automated compilation workflows.
Validation Code
How to validate .m4 files in Python
Python
def is_m4(file_path: str) -> bool:
"""Check if file is a valid M4 by magic bytes."""
signature = bytes([0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x54, 0x65, 0x58, 0x2C])
with open(file_path, "rb") as f:
return f.read(12) == signature
How to validate .m4 files in Node.js
Node.js
function isM4(buffer: Buffer): boolean {
const signature = Buffer.from([0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x54, 0x65, 0x58, 0x2C]);
return buffer.subarray(0, 12).equals(signature);
}
Go
func IsM4(data []byte) bool {
signature := []byte{0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x54, 0x65, 0x58, 0x2C}
if len(data) < 12 {
return false
}
return bytes.Equal(data[:12], signature)
}
API Endpoint
GET
/api/v1/m4
curl https://filesignature.org/api/v1/m4