Shortest hex dumping program Challenge

Create a console program to display each byte of a file.



Winning

Since this is code-golf, fewest bytes wins.



Rules


Program must be a console application, meaning that it will be ran from some sort of command-line interpreter;
Every byte must be uppercase hexadecimal, separated by a space, and it must be 2 digits; (put number 0 before it if it has 1 digit)
File must be read using IO or alternative, and not hard-coded;
File path must be specified as a command-line argument or a user prompt (like STDIN);
No loopholes please;




Example

test.txt (ends with LF)

Hello World!



$ ./hexdump.exe test.txt
48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A
C (gcc) on *nix, 73 71 bytes



i;main(c,v)int**v;{for(c=open(v[1],0);read(c,&amp;i,1);printf("%02X ",i));}


Try it online! Test suite

-2 bytes thanks to Johan du Toit

This relies on O_RDONLY == 0 and on int_one == 1 where int int_one; *(char*)&amp;int_one = 1;.