Как реконфигурировать большую программу для Автоинструментов GNU

Вы наблюдаете поведение, потому что, если символ новой строки не записывается в ID из-за отсутствия места, он остается во входном буфере, который последующие два вызова scanf() не используют из-за того, что строка спецификатора формата не читается белым пространство.

fgets() возвращается при вводе новой строки, и новая строка записывается в буфер. В этом случае вам необходим буфер из 12 символов - для размещения новой строки и нулевого терминатора. Хорошей идеей является также инициализация буфера нулями.

char ID[11] = {0} ;

После fgets() вам может потребоваться заменить символ новой строки на ноль.

Чтобы заменить новую строку на nul или отбросить данные входного буфера, где новая строка остается:

char* end = strrchr( ID, `\n` ) ;
if( end != NULL) 
{ 
    *end = `\0` 
}
else
{
    char c ;
    do
    {
        c = getchar() ;
    } while( c != '\n' && c != EOF ) ;
}
5
задан Chris Lutz 1 February 2009 в 10:09
поделиться

2 ответа

Первая вещь, можно выполнить автосканирование в корневом каталоге проекта. Это просканирует дерево проекта и генерирует configure.scan при попытке обнаружить непортативные функции. Затем Вы переименовываете его к configure.ac, редактируете его соответственно и пишете файлы Makefile.am.

Я предлагаю, чтобы Вы искали этот процесс (особенно автосканирование) в руководстве автоинструментов GNU для деталей. Это уменьшит Ваше усилие, но по крайней мере Вы не запустите с нуля с создания тех файлов.

8
ответ дан 14 December 2019 в 01:19
поделиться

Эта ссылка - то, для чего я погуглил после того, чтобы читать это сообщение. Это ответило на мои вопросы о том, как создать./файл конфигурации.

Система сборки GNU

1
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

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