Ваша самая большая проблема в том, что вы воспринимаете stream[i]
как строку! Это , а не строка, это int
значение.
Использование &stream[i]
чтобы получить указатель на него, и использовать sizeof stream[i]
, чтобы получить его размер.На самом деле вам не нужно писать каждый элемент отдельно, вы можете просто написать весь массив сразу:
write(fd, stream, sizeof stream);
Вы можете прочитать его точно так же.
Большой знакпроблема в том, что вам нужно использовать кастинг в стиле C.Если вам нужно сделать это в C ++, то это то, что вы делаете что-то, что делать не следует.
Кроме того, что вы на самом деле ничего не делаете для C ++, ваш код может быть простым C.
Решение C ++ будет использовать вместо std::fstream
.
Если вам все еще нужно использовать низкоуровневую функцию POSIX, не забудьте проверка ошибок .Каждая функция, которую вы вызываете, может завершиться ошибкой.И это на самом деле включает в себя вызов close
.