gcc -finput-charset=sjis -fexec-charset=sjis testsjis.c -o testsjis
内部で\がすべて2バイトコードに変換されてしまいます。
libiconvのsjis->utf-8がよろしくないようで