В одной книге по программированию есть объявление системного вызова read ():
ssize_t read (int fd, void *buf, size_t len);
Далее автор приводит пример правильного применения этого системного вызова:
ssize_t ret;
while (len != 0 && (ret = read (fd, buf, len)) != 0) {
if (ret == –1) {
if (errno == EINTR)
continue;
perror ("read");
break;
}
len -= ret;
buf += ret;
}
У меня вопрос: можно ли использовать в таком примере в качестве buf массив? Если да, то как? А то, если я использую массив, то при компиляции последней строки цикла появляется сообщение:
error: invalid operands to binary + (have ‘char[2]’ and ‘ssize_t’)
gcc version 4.7.2 (Debian 4.7.2-5)