Кавычки от GetCommandLine()

Тема в разделе "WASM.BEGINNERS", создана пользователем ADim, 28 июл 2008.

  1. ADim

    ADim New Member

    Публикаций:
    0
    Регистрация:
    6 май 2007
    Сообщения:
    28
    Если вызывать GetCommandLine(), то можно получить как строку в кавычках, так и без нее. Каков закон появления кавычек? Так, если консольный процесс вызывает консольный процесс и в имени вызываемого нет пробелов, то кавычек не будет. В других случаях - будут.
     
  2. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    ADim
    Нету закона. Есть что-то вроде рекомендации. Как захочу, так и вызову Ваш процесс. Захочу, вообще не будет ни имени образа, ни пути к нему.
     
  3. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    ADim
    Закон таков: в кавычки заключают тот аргумент, который содержит какие либо разделители.
    Банальный пример:
    Конечно закон неформальный :)
     
  4. Prince

    Prince New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    71
    Может сначала сорсы глянуть? создания процесса например
    Столько открытого кода в сети ужас - и никто не смотрит
    http://www.reactos.org/generated/doxygen/d4/dbe/dll_2win32_2kernel32_2process_2create_8c.html#a10
    l_inc прав - разницы нет какой ком.строкой создается процесс - в кавычках или нет
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Prince
    Не надо меня подставлять. :) Я такого не говорил.
    Во-первых, в том, какой командной строкой создается процесс, есть разница, очень подробно описанная в MSDN.
    Во-вторых, ADim спрашивал не об этом, а о правилах, с какой командной строкой создается процесс. И тут тоже есть большая разница, зависящая от реализации процесса, обрабатывающего свою командную строку.
    Другое дело, что с какой командной строкой создается процесс определяется вызывающим процессом, а не операционной системой, хотя в MSDN и есть рекомендация на эту тему:
     
  6. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Если в строке есть хотябы один пробел(ASCII #32) то ставятся кавычки.
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Я всегда делал так (и пока не подводило): проверял первый символ. Если он кавычка - тогда искал кавычку, иначе искал пробел - так я получал указатель на параметры в командной строке.