RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : fdopen не открывает (handle==HFILE?1:0)


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : saa
To : All
Subj : fdopen не открывает (handle==HFILE?1:0)

Простая программа (см ниже) при выполнении fdopen говорит что, мол, access denied. Причем если убрать строчку со "********" в комментарии, то всё работает. Не мог бы кто-нибудь просветить, где прочитать, какая разница между HFILE hfile в оси и int handle в сях, и как из первого сделать второе?

Компилятор WC++ 10.0

----- begin -----
#include "stdio.h"
#include "assert.h"
#include "stdlib.h"
#define INCL_DOS
#include "os2.h"

int main ()
{
int i;
HFILE hf;
ULONG ttt;
FILE *f;

assert ( fopen ("tmp", "w") != 0 ); // сам файл нам не нужен *************

assert ( DosOpen ("tmp2", & hf, & ttt, 0, 0,
OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS,
OPEN_SHARE_DENYREADWRITE | OPEN_ACCESS_READWRITE, 0) == 0 );

f = fdopen (hf,"r+");
if (f==0)
{
printf ("fdopen error, errno=%d\n", errno);
return 1;
}
printf ("All ok");
return 0;
}
----- end -----

Примечание: Если есть чем сишным заменить DosCreateNPipe, то проблему можно считать почти решенной.

Mon 03 Dec 2001 18:39 Mozilla/2.02 (X11; I)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.