Linux, эквивалентный из GetCommandLine и CommandLineToArgv?

Интересно, существует ли некоторый API для получения параметров командной строки текущего процесса на Linux.


Я предполагаю, что был ужасно неясен. Реальной целью вопроса были о передаче unicode имена файлов через параметры командной строки.

8
задан lyxera 5 January 2010 в 01:59
поделиться

3 ответа

Читайте из файла /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
11
ответ дан 5 December 2019 в 10:41
поделиться

checkout Getopt Это библиотека разбора командной строки, реализованная на многих языках, включая C.

В противном случае:

int main(int argc, char *argv[])

argv - это массив аргументов, так как char* и argc - это количество аргументов.

argv[0] - это всегда само имя исполняемого файла.

3
ответ дан 5 December 2019 в 10:41
поделиться

Просто используйте argc и argv. argv будет в локальной кодировке (которая может быть UTF-8), а оттуда вы можете преобразовать в wchar_t (например, через mbtowc).

1
ответ дан 5 December 2019 в 10:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: