OriginalGriff
Во-первых, посмотрите на свой файл данных и решите, как он организован: если он содержит "целые числа", то вам нужно выяснить, как он на самом деле хранится.
Например:
1234
5678
9012
вероятно, это строковое представление целых чисел, а не "целые числа" как таковые. Чтобы прочитать их, вам нужно прочитать строки, чтобы установить, где начинаются и заканчиваются целые числа, и определить конечный символ каждого значения, чтобы решить, является ли целое число четным или нечетным.
Даже если он хранится по-разному, вам нужно будет сделать что-то подобное, так как очень маловероятно, что каждое целое число хранится в непосредственно полезном формате.
И сделайте себе одолжение: сделайте отступ в своем коде!
Гораздо легче понять, что происходит, если вы сделаете отступ:
for(i=0;i<n;i++)
{
if(buf[i]%2==0)
{
write(fd2,buf,n);
}
else
{
write(fd3,buf,n);
}
}
Гораздо легче работать с чем
for(i=0;i<n;i++)
{
if(buf[i]%2==0)
{
write(fd2,buf,n);
}
else
{
write(fd3,buf,n);
}
}
k5054
К ОП, также обратите внимание, что open("my_file.txt", O_RDONLY)
делает нет создать "my_file.txt-если он еще не существует. Для этого вам нужно будет использовать O_CREAT
флаг. Существует несколько причин, по которым open
может произойти сбой, вам, вероятно, следует проверить его возвращаемое значение, например
int fd;
fd = open("my_file.txt", O_RDONLY)
if(fd == -1) /* open failed */
{
// handle the error here ...
}