Есть некий скрипт, который нужно дернуть из Си-кода. Проблема в том, что скрипт принимает 4 параметра:
script.pl 5 "text 1" 20 "text 2"
В си коде выглядит как-то так (выхлоп скрипта не нужен в принципе):
void ticket_create(u32 code, const char * text, i32 len, const char * file)
{
char buffer[32768];
sprintf(buffer,
"script.pl %d \"%s\" %d \"%s\"",
code, text, len, file);
PrintInfo(0, "Going to create ticket: \"%s\"", buffer);
system(buffer);
}
/// 1
char buffer1[1000];
char buffer2[1000];
sprintf(buffer1, "Spl rewind failed in hall %d as SPL \"%s\" in CPL \"%s\".<br>",
Hall(devindex), target_splid, target_cplid);
sprintf(buffer2, "/tk/dd24/log/ctms/hall_%d.log", Hall(devindex));
ticket_create(TICKET_REWIND_FAILED, buffer1, 10, buffer2);
/// 2
char buffer1[1000];
char buffer2[1000];
sprintf(buffer1, "Can't find 'ShowPlaylist.Id' in SPL. SPL's splid is %s in hall %d.",
splid, Hall(devindex));
sprintf(buffer2, "/tk/dd24/log/ctms/spls/%d/%s/%s.xml", Hall(devindex), hr_time(10), splid);
ticket_create(TICKET_SPL_NOID, buffer1, -1, buffer2);
/// 3
char buffer1[1000];
char buffer2[1000];
sprintf(buffer1, "Serials mismatch in hall %d: \'%s\' (db) and \'%s\' (device).",
devicesdb.devices[devindex].hallid,
devicesdb.devices[devindex].serial, serial);
sprintf(buffer2, "/tk/dd24/log/ctms/protocol-%d.log",
devicesdb.devices[devindex].hallid);
ticket_create(TICKET_SERIAL_WRONG, buffer1, 50, buffer2);
Есть идеи?