Как использовать sprintf вместо жестко закодированных значений - PullRequest
1 голос
/ 20 марта 2010

Я занимаюсь разработкой брандмауэра для Linux в качестве своего проекта. Я могу захватывать пакеты и блокировать их. Я использую IPTABLES.

Как я могу использовать переменные с sprintf вместо жестко закодированных значений?

sprintf(comm, "iptables -A INPUT -s $str -j DROP")
// inplace of:
sprintf(comm, "iptables -A INPUT -s 192.168.0.43 -j DROP")

Ответы [ 2 ]

2 голосов
/ 20 марта 2010
sprintf(comm, "iptables -A INPUT -s %s -j DROP", "192.168.0.43");
// also:
char ipaddress[] = "192.168.0.43";
sprintf(comm, "iptables -A INPUT -s %s -j DROP", ipaddress);

Подробнее в man sprintf .

0 голосов
/ 20 марта 2010

Работает так же, как обычный printf(). Строки одинакового формата принимаются. Однако будьте осторожны, чтобы не переполнить строковый буфер. В этом смысле snprintf() будет НАМНОГО более приемлемым, чем sprintf().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...