Fájltípus C nyelven (Linux)

szavazat
-1

Hol találom a nyilatkozatot típusú FILEforrásokban fájlokat?

Nem találom azt stdio.h. Mármint nyilatkozatot. Vajon intírja? Fájlleírás? Vagy ez egy szerkezet?

Meg kell végrehajtani, hogy az én-kód nélkül standart könyvtárban.

A kérdést 16/09/2015 09:54
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Nem egészen egy ügyes választ, de működni fog

Írja néhány programot, mint ez mondjuk program.c

#include <stdio.h>
int main() {
        FILE *fp;
        return 0;
}

összeállításához hibakeresésének szimbólumok

gcc program.c -g -o programot

a gdb látni típus

# gdb ./program
(gdb) b  main
(gdb) run
(gdb) ptype fp
type = struct _IO_FILE {
    int _flags;
    char *_IO_read_ptr;
    char *_IO_read_end;
    char *_IO_read_base;
    char *_IO_write_base;
    char *_IO_write_ptr;
    char *_IO_write_end;
    char *_IO_buf_base;
    char *_IO_buf_end;
    char *_IO_save_base;
    char *_IO_backup_base;
    char *_IO_save_end;
    struct _IO_marker *_markers;
    struct _IO_FILE *_chain;
    int _fileno;
    int _flags2;
    __off_t _old_offset;
    short unsigned int _cur_column;
    signed char _vtable_offset;
    char _shortbuf[1];
    _IO_lock_t *_lock;
    __off64_t _offset;
    void *__pad1;
    void *__pad2;
    void *__pad3;
    void *__pad4;
    size_t __pad5;
    int _mode;
    char _unused2[20];
} *

vagy ellenőrizze

/usr/include/stdio.h

typedef struct _IO_FILE FILE;

és

/usr/include/libio.h

struct _IO_FILE {
  int _flags;       /* High-order word is _IO_MAGIC; rest is flags. */
#define _IO_file_flags _flags
.
.
.
}

Mindenesetre a @molbdnilo Hegyes rendkívül végrehajtás konkrét

Válaszolt 16/09/2015 10:23
a forrás felhasználó

szavazat
0

Miért akarja, hogy végre anélkül standard könyvtár? Használja standard könyvtár, ha lehetséges.

Azt hiszem, ez ad egy ötletet:

#ifndef _FILE_DEFINED
#define _FILE_DEFINED
typedef struct _iobuf
{
    char*   _ptr;
    int _cnt;
    char*   _base;
    int _flag;
    int _file;
    int _charbuf;
    int _bufsiz;
    char*   _tmpfname;
} FILE;
#endif  /* Not _FILE_DEFINED *
Válaszolt 16/09/2015 10:34
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more