Я использую именованный канал для IPC в системе Debian.Я буду отправлять некоторые данные в виде набора строк из сценария bash в фоновый запущенный процесс, написанный на коде C.
Данные, которые я хочу отправить, состоят из четырех строк, например, accountid, firstname, фамилия, описание.В настоящее время я отправляю данные в виде массива char, разделенного пробелами из моего скрипта bash.
echo "accountid firstname surname description" >$pipe
В фоновом процессе я читаю данные канала, как это, в массив char 'datain'
res = read(pipe_fd, datain, BUFFER_SIZE);
тогда я просто перебираю массив в поисках пробелов
например
char* p = datain;
char accountid[80];
char firstname[80];
// extract the accountid
while(p!='')
{
accountid = p;
++p;
}
++p;
while(p!='')
{
firstname = p;
++p;
}
и т. Д.
Этот метод кажется немного грубым, однако мое программированиенавыки не так хороши, поэтому мне было интересно, есть ли лучшая стратегия для передачи этого набора данных по именованному каналу в Linux.
Спасибо