Почему нельзя снова использовать? [Дубликат]

Старый пост, но вам не нужно создавать именованный класс - вместо этого используйте подстановочные знаки, как упоминалось в этом сообщении . Мощный конструктор powermock через whennew () не работает с анонимным классом

@PrepareForTest(fullyQualifiedNames = "com.yourpackage.containing.anonclass.*")

6
задан chepner 3 March 2013 в 01:11
поделиться

1 ответ

Если вы хотите сканировать несколько векторов, вам нужно сбросить getopt, установив optind в 1.

Переменная optind - это индекс следующего элемента argv [] вектор, подлежащий обработке. Он должен быть инициализирован 1 системой, и getopt () должен обновлять его, когда он заканчивается с каждым элементом argv [].

Если установка optind на 1 не работает , также попробуйте 0, я думаю, что помню, что читал об этом где-то.

15
ответ дан cnicutar 20 August 2018 в 07:44
поделиться
  • 1
    Спасибо, посмотрим, если это сработает :) – MiJyn 3 March 2013 в 00:24
  • 2
    Установка optind на 1 зафиксировала его, но у меня все еще были предупреждения от valgrind, поэтому я попытался установить его на 0, и теперь он работает отлично. Благодаря! – MiJyn 3 March 2013 в 00:35
  • 3
    @MiJyn Приятно знать :-) – cnicutar 3 March 2013 в 00:36
  • 4
    Обратите внимание, что POSIX getopt() говорит: Переменная optind - это индекс следующего элемента вектора argv[], подлежащего обработке. Он должен быть инициализирован системой 1, а getopt() должен обновлять ее, когда она заканчивается каждым элементом из argv[]. Если приложение устанавливает optind в ноль перед вызовом getopt(), поведение не задано. Когда элемент из argv[] содержит несколько символов параметра, не указано, как getopt() определяет, какие параметры уже были обработаны. [... продолжение ...] – Jonathan Leffler 8 May 2018 в 01:23
  • 5
    Если вы читаете до конца списка аргументов (поэтому getopt() возвращает -1), то сброс optind = 1; должен сбросить его для повторной обработки. Тем не менее, если для аргумента и строки опций "abc" и аргумента командной строки -abc вы используете аргумент аргумента и аргумента командной строки, и вы пытаетесь сбросить разбор после чтения только a или b, возможно, вы не достигли reset - синтаксический анализ может продолжаться с c. Установка в 0 явно не указана POSIX; это может быть или не быть полезным - вы должны прочитать руководство по реализации или экспериментировать и надеяться, что результат останется действительным во всех обновлениях (и беспокоиться о портировании). – Jonathan Leffler 8 May 2018 в 01:25
Другие вопросы по тегам:

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