iconv

iconvは、文字コード変換をする。

Man page of ICONV

「どの文字コードからどの文字コードへ変換するか」といった情報を指定して、変換ディスクリプタを取得しないといけない。

test1.txtを読み込みbufに格納。
"utf-8"から"Shift_JIS"へ変換するディスクリプタiconv_dscを取得。
iconvにiconv_dsc、bufのポインタ、bufの長さなどを渡すと、buf2_ptrに変換後の文字列ポインタが入るので、これをtest2.txtとして保存。

$ vi iconv.c 
$ cat test1.txt 
あいうえお
$ gcc iconv.c -o iconv
$ ./iconv 
iconv error!
iconv error detail: Invalid or incomplete multibyte or wide character
$ vi test1.txt 
$ cat test1.txt 
あかさたな
$ gcc iconv.c -o iconv
$ ./iconv 
$ ls
iconv  iconv.c  test1.txt  test2.txt
$ cat test2.txt 
縺ゅ°縺輔◆縺ェ$ 
$ cat test2.txt | iconv -f utf8 -t Shift_JIS
あかさたな$ 
$

test2.txtはShift_JISになってしまって文字化けしてるので、utf8に戻して表示。
たしかに文字コード変換できてる。

Sample/unixsyscall/iconv/iconv/src/iconv at master · bg1bgst333/Sample · GitHub