Я должен сделать программу, которая может принимать ввод, как это:
2012-01-20 10:50:52 127.0.0.1(via UDP: [127.0.0.1]:65008->[0.0.0.0]:0) TRAP, SNMP v1, community telros
SNMPv2-SMI::enterprises.3.1.1 Enterprise Specific Trap (1) Uptime: 73 days, 21:16:00.11
2012-01-20 10:50:53 127.0.0.1(via UDP: [127.0.0.1]:57487->[0.0.0.0]:0) TRAP, SNMP v1, community telros
SNMPv2-SMI::enterprises.3.1.1 Enterprise Specific Trap (1) Uptime: 73 days, 21:16:01.15
2012-01-20 10:50:54 127.0.0.1(via UDP: [127.0.0.1]:34207->[0.0.0.0]:0) TRAP, SNMP v1, community telros
SNMPv2-SMI::enterprises.3.1.1 Enterprise Specific Trap (1) Uptime: 73 days, 21:16:01.92
и затем поместите его в Postgres: получите две строки, разделенные пустой (\n
) строкой, и поместите их в таблицу базы данных.
я пытаюсь сделать следующее:
const char *conninfo;
const char *paramValues[1];
char *str;
char *sql;
...
while(fgets(str, 126, stdin)) {
if (0 != strcmp(str,"\n")){
strcat(sql,str);
}else{
paramValues[0] = (const char *)sql;
res = PQexecParams(conn,
"insert into traps (trap_content, trap_timestamp) values ($1, localtimestamp);",
1,
NULL,
paramValues,
NULL,
NULL,
1);
sql = "";
}
}
но paramValues[0]
на вставке кажется пустым, а в таблице появляется пустая строка.
как мне получить две строки перед пустой в paramValues[0]
?
я не очень хорош в C, так что извините, если это глупый вопрос =)