Интересно, существует ли некоторый API для получения параметров командной строки текущего процесса на Linux.
Я предполагаю, что был ужасно неясен. Реальной целью вопроса были о передаче unicode имена файлов через параметры командной строки.
Читайте из файла /proc/self/cmdline
Например:
[wallyk@zf ~]$ od -a /proc/30651/cmdline
0000000 / u s r / s b i n / h t t p d nul
0000020
Или, для получения удовлетворительного освежающего самоназвания:
[wally@zf images]$ od -c /proc/self/cmdline
0000000 o d \0 - c \0 / p r o c / s e l f
0000020 / c m d l i n e \0
0000031
checkout Getopt Это библиотека разбора командной строки, реализованная на многих языках, включая C.
В противном случае:
int main(int argc, char *argv[])
argv
- это массив аргументов, так как char*
и argc
- это количество аргументов.
argv[0]
- это всегда само имя исполняемого файла.
Просто используйте argc
и argv
. argv
будет в локальной кодировке (которая может быть UTF-8), а оттуда вы можете преобразовать в wchar_t
(например, через mbtowc
).