When it comes to environmental considerations, especially files, the C standard intentionally gets pretty vague. The following guarantees are made about trigraphs and the coding of their respective characters:
C11 (n1570) 5.1.1.2 p1 ("Translation phases") [emph. my]
, . , . , , .
, ( , , , ). , . . 7.21.2 p2:
[...] , , , , : ; ; - . [...]
. 7.4 p3:
" " , , ; " " , , . *) .
*) , US ASCII, , 0x20 () 0x7E (); , 0 (NUL) 0x1F (US) 0x7F (DEL).
, . 7.21.2 p3:
, . , , , , . , , , .
,
printf("int main(void) ??< ??>\n");
printf("int main(void) ?\?< ?\?>\n");
, . , isprint('??<') .. ( (1)) isprint('<') .. ( (2)), , C89 :
, -, - , C; , C . , backspace, , .
'??<' .. , , , '??<' .
: C89 .