2013-09-25 8 views
0

Я пытаюсь написать серверную программу в c, с DevCpp, которая будет создавать и редактировать около сотни файлов каждую минуту, по 200 байт каждый.Как открыть файл в неблокирующем режиме в devcpp?

Проблема заключается в том, что unistd.h, на devcpp, не могут открывать файлы в режиме неблокируемом (кажется): Я хотел бы использовать open() с O_NONBLOCK флагом, но, кажется, не существует в библиотеках (я уже проверил в fcntl.h).

Что вы рекомендуете мне делать? Должен ли я искать другую версию unistd.h, а не версию DevCpp, или использовать другую библиотеку?

Я хочу, чтобы код был как можно более простым, чтобы создать быструю и надежную серверную программу на языке C. Заранее спасибо.

+0

devcpp мертв и очень старый проект. Попробуйте что-нибудь другое, как QtCreator –

+0

Я провел некоторое исследование. Нет, проблема не в IDE. Кажется, что только Windows не поддерживает флаг 'O_NONBLOCK'. Я уже пробовал последнюю версию [Pelles C] (http://www.smorgasbordet.com/pellesc/), и я обнаружил, что 'fcntl.h' почти идентичен. – Crocodile

ответ

1

Заголовок для open() и его флагов: <fcntl.h>.

+0

Файл fcntl.h существует, но он не содержит флаг O_NONBLOCK. – Crocodile

+0

Затем вы не находитесь на POSIX-совместимом компьютере, или вы не включили POSIX-соответствие. Вы можете попробовать O_NBLOCK (устаревший). Вы можете попробовать '#define _XOPEN_VERSION 700' перед любыми заголовками (или' -D_XOPEN_VERSION = 700' в командной строке). –

+0

Я просто попытался и ничего не получил. DevCpp предназначен только для Windows. – Crocodile

Смежные вопросы