творю строку, используя snprintf()
:Объединение строк с использованием snprintf
snprintf(msgText, MAX_MSG_SIZE-1, "expr $((($(date +%s) - $(date +%s -r filename.txt))/86400))");
Это предназначено для хранения команды Linux в msgText
. Команда будет выполнена позже и выведет возраст filename.txt
в днях.
Проблема состоит в следующем:
Это не так, как snprintf
ожидает %s
иметь строковый аргумент. Компилятор сообщает об этой ошибке:
error: format ‘%s’ expects a matching ‘char *’ argument
Что мне делать?
Возможно прочитать страницу руководства и избежать% –
Или просто используйте 'strncpy()', так как 'sprintf()' предназначен для форматирования строки, которую вы здесь не делаете. –
Будьте осторожны с 'strncpy()'; он не гарантирует нулевое завершение. Но я согласен с тем, что использование 'snprintf()' для выполнения простой строковой копии немного переборщило. –