Симлинки указывают на одну и ту же исполняемую цель, но выполняют разные функции

Я думаю, эта команда вам поможет

xxd /dev/sdb | grep -v '0000 0000 0000 0000 0000 0000 0000 0000'

Если привод был обнулен, эта команда не возвращает никакого вывода. Если на нем остались какие-либо байты, команда будет рада вывести их на экран

Спасибо

2
12.02.2021, 13:39
1 ответ

Программа может выбирать различные маршруты, просматривая нулевой -аргументargv[0](в данном случае vimилиgvim).

Vim делает это вmain.c:

    params.argv = argv;
   ...

    /* Figure out the way to work from the command name argv[0].
    "vimdiff" starts diff mode, "rvim" sets "restricted", etc. */
    parse_command_name(&params);
   ...

/* Check for: [r][e][g][vi|vim|view][diff][ex[im]] (sort of) */
static void parse_command_name(mparm_T *parmp) {
    char_u *initstr;
    initstr = gettail((char_u *)parmp->argv[0]);
   ...

    /* "gvim" starts the GUI.  Also accept "Gvim" for MS-Windows. */
    if (TOLOWER_ASC(initstr[0]) == 'g') {
        main_start_gui();

В этом фрагменте программа проверяет, является ли первый символ базового имени argv[0]— «г»; если да, он запускает графический интерфейс.

Это можно наблюдать, создавая ссылки:

ln -s /usr/bin/vim.athena vimX
ln -s /usr/bin/vim.athena gvimX
ln -s /usr/bin/vim.athena evimX
ln -s /usr/bin/vim.athena rvimX
ln -s /usr/bin/vim.athena exX

где Xчто угодно, а затем ./vimXзапускает Vim в терминале, ./gvimXв графическом интерфейсе ./evimXзапускает Vim в простом режиме и т. д.

7
18.03.2021, 22:30

Теги

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