Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как получить режим файла


Автор: FiMa1 19.3.2007, 10:48
Код

#include <stdio.h>

void getfmode(FILE *fp) {
    /*МОЖНО ЗДЕСЬ ПОЛУЧИТЬ РЕЖИМ ОТКРЫТИЯ ФАЙЛА ПО УКАЗАТЕЛЮ?*/
}

int main(void)
{
    FILE *fp;

    if( (fp=fopen("test", "r"))== NULL ) {
        printf("The file was not opened\n");
        exit(1);
    }
    getfmode(fp);
    fclose(fp);

    return 0;
}

Автор: seacat79 19.3.2007, 11:24
Код

#include <stdio.h>
void getfmode(FILE *fp) {
    /*МОЖНО ЗДЕСЬ ПОЛУЧИТЬ РЕЖИМ ОТКРЫТИЯ ФАЙЛА ПО УКАЗАТЕЛЮ?*/
    fp->_flag;
}



Автор: FiMa1 19.3.2007, 13:01
я так полагаю _flag из struct _iobuf (stdio.h)... А как можно поюзать остальные поля структурки и что они значат?
Код

#include <stdio.h>

void getfmode(FILE *fp) {
    int mode = fp->_flag;
    int bsize= fp->_bufsiz;    /* ? bsize=0, в "test" текст "abc" */
}

int main(void)
{
    FILE *fp;

    if( (fp=fopen("test", "r"))== NULL ) {
        printf("The file was not opened\n");
        exit(1);
    }
    getfmode(fp);
    fclose(fp);

    return 0;
}

Автор: seacat79 19.3.2007, 13:14
Вот то, что откопал из книги Кернигана и Ритчи
Код

typedef struct _iobuf {
    int cnt;        /* количество оставшихся символов */
    char *ptr;      /* позиция следующего символа */
    char *base;     /* адрес буфера */
    int flag;       /* режим  доступа */
    int fd;         /* дескриптор файла */
} FILE;


Автор: FiMa1 19.3.2007, 13:30
СПАСИБО, seacat79! Имхо, пора нам статусами менятся.. шустрый <-> новичок  smile

Добавлено @ 13:31 
закрыто

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)