Контент странный, потому что вы пишете двоичные значения, случайные коды символов от 0 до 50. Но с информацией все в порядке (ну, вам нужно записать sizeof(int)
раз больше данных всохраните все данные, хотя, и они могут быть повреждены в Window, потому что вам не хватает O_BINARY
, и некоторые символы возврата каретки могут быть вставлены в некоторых местах ...):
fd = open(argv[1], O_RDWR | O_CREAT | O_TRUNC, 0644); // add | O_BINARY if you use windows
write(fd, tab, 10 * sizeof(int)); // you can use (fd,tab,sizeof(tab)) too as it's an array, not a pointer
Используйте шестнадцатеричный редакторвы увидите значения (с большим количеством нулей, так как ваши значения могут быть закодированы в байтах).Но не с текстовым редактором.
Если вы хотите записать отформатированные целые числа в виде строк, используйте fopen
и fprintf
для значений в текстовом файле, а не в двоичном формате.Быстрый и грязный (а также непроверенный:)):
FILE *f = fopen(argv[1], "w"); // #include <stdio.h> for this
if (f != NULL)
{
int i;
for (i = 0; i < 10; i++)
{
fprintf(f,"%d ",tab[i]);
}
fclose(f);
}