⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.h

📁 gcc-fortran,linux使用fortran的编译软件。很好用的。
💻 H
📖 第 1 页 / 共 2 页
字号:
  unit_position position;  unit_status status;  unit_pad pad;  unit_convert convert;}unit_flags;/* The default value of record length for preconnected units is defined   here. This value can be overriden by an environment variable.   Default value is 1 Gb.  */#define DEFAULT_RECL 1073741824typedef struct gfc_unit{  int unit_number;  stream *s;    /* Treap links.  */  struct gfc_unit *left, *right;  int priority;  int read_bad, current_record;  enum  { NO_ENDFILE, AT_ENDFILE, AFTER_ENDFILE }  endfile;  unit_mode mode;  unit_flags flags;  /* recl           -- Record length of the file.     last_record    -- Last record number read or written     maxrec         -- Maximum record number in a direct access file     bytes_left     -- Bytes left in current record.  */  gfc_offset recl, last_record, maxrec, bytes_left;  __gthread_mutex_t lock;  /* Number of threads waiting to acquire this unit's lock.     When non-zero, close_unit doesn't only removes the unit     from the UNIT_ROOT tree, but doesn't free it and the     last of the waiting threads will do that.     This must be either atomically increased/decreased, or     always guarded by UNIT_LOCK.  */  int waiting;  /* Flag set by close_unit if the unit as been closed.     Must be manipulated under unit's lock.  */  int closed;  /* For traversing arrays */  array_loop_spec *ls;  int rank;  int file_len;  char *file;}gfc_unit;/* Format tokens.  Only about half of these can be stored in the   format nodes.  */typedef enum{  FMT_NONE = 0, FMT_UNKNOWN, FMT_SIGNED_INT, FMT_ZERO, FMT_POSINT, FMT_PERIOD,  FMT_COMMA, FMT_COLON, FMT_SLASH, FMT_DOLLAR, FMT_T, FMT_TR, FMT_TL,  FMT_LPAREN, FMT_RPAREN, FMT_X, FMT_S, FMT_SS, FMT_SP, FMT_STRING,  FMT_BADSTRING, FMT_P, FMT_I, FMT_B, FMT_BN, FMT_BZ, FMT_O, FMT_Z, FMT_F,  FMT_E, FMT_EN, FMT_ES, FMT_G, FMT_L, FMT_A, FMT_D, FMT_H, FMT_END}format_token;/* Format nodes.  A format string is converted into a tree of these   structures, which is traversed as part of a data transfer statement.  */typedef struct fnode{  format_token format;  int repeat;  struct fnode *next;  char *source;  union  {    struct    {      int w, d, e;    }    real;    struct    {      int length;      char *p;    }    string;    struct    {      int w, m;    }    integer;    int w;    int k;    int r;    int n;    struct fnode *child;  }  u;  /* Members for traversing the tree during data transfer.  */  int count;  struct fnode *current;}fnode;/* unix.c */extern int move_pos_offset (stream *, int);internal_proto(move_pos_offset);extern int compare_files (stream *, stream *);internal_proto(compare_files);extern stream *open_external (st_parameter_open *, unit_flags *);internal_proto(open_external);extern stream *open_internal (char *, int);internal_proto(open_internal);extern stream *input_stream (void);internal_proto(input_stream);extern stream *output_stream (void);internal_proto(output_stream);extern stream *error_stream (void);internal_proto(error_stream);extern int compare_file_filename (gfc_unit *, const char *, int);internal_proto(compare_file_filename);extern gfc_unit *find_file (const char *file, gfc_charlen_type file_len);internal_proto(find_file);extern void flush_all_units (void);internal_proto(flush_all_units);extern int stream_at_bof (stream *);internal_proto(stream_at_bof);extern int stream_at_eof (stream *);internal_proto(stream_at_eof);extern int delete_file (gfc_unit *);internal_proto(delete_file);extern int file_exists (const char *file, gfc_charlen_type file_len);internal_proto(file_exists);extern const char *inquire_sequential (const char *, int);internal_proto(inquire_sequential);extern const char *inquire_direct (const char *, int);internal_proto(inquire_direct);extern const char *inquire_formatted (const char *, int);internal_proto(inquire_formatted);extern const char *inquire_unformatted (const char *, int);internal_proto(inquire_unformatted);extern const char *inquire_read (const char *, int);internal_proto(inquire_read);extern const char *inquire_write (const char *, int);internal_proto(inquire_write);extern const char *inquire_readwrite (const char *, int);internal_proto(inquire_readwrite);extern gfc_offset file_length (stream *);internal_proto(file_length);extern gfc_offset file_position (stream *);internal_proto(file_position);extern int is_seekable (stream *);internal_proto(is_seekable);extern int is_preconnected (stream *);internal_proto(is_preconnected);extern void flush_if_preconnected (stream *);internal_proto(flush_if_preconnected);extern void empty_internal_buffer(stream *);internal_proto(empty_internal_buffer);extern try flush (stream *);internal_proto(flush);extern int stream_isatty (stream *);internal_proto(stream_isatty);extern char * stream_ttyname (stream *);internal_proto(stream_ttyname);extern gfc_offset stream_offset (stream *s);internal_proto(stream_offset);extern int unit_to_fd (int);internal_proto(unit_to_fd);extern int unpack_filename (char *, const char *, int);internal_proto(unpack_filename);/* unit.c *//* Maximum file offset, computed at library initialization time.  */extern gfc_offset max_offset;internal_proto(max_offset);/* Unit tree root.  */extern gfc_unit *unit_root;internal_proto(unit_root);extern __gthread_mutex_t unit_lock;internal_proto(unit_lock);extern int close_unit (gfc_unit *);internal_proto(close_unit);extern int is_internal_unit (st_parameter_dt *);internal_proto(is_internal_unit);extern int is_array_io (st_parameter_dt *);internal_proto(is_array_io);extern gfc_unit *find_unit (int);internal_proto(find_unit);extern gfc_unit *find_or_create_unit (int);internal_proto(find_unit);extern gfc_unit *get_unit (st_parameter_dt *, int);internal_proto(get_unit);extern void unlock_unit (gfc_unit *);internal_proto(unlock_unit);/* open.c */extern void test_endfile (gfc_unit *);internal_proto(test_endfile);extern gfc_unit *new_unit (st_parameter_open *, gfc_unit *, unit_flags *);internal_proto(new_unit);/* format.c */extern void parse_format (st_parameter_dt *);internal_proto(parse_format);extern const fnode *next_format (st_parameter_dt *);internal_proto(next_format);extern void unget_format (st_parameter_dt *, const fnode *);internal_proto(unget_format);extern void format_error (st_parameter_dt *, const fnode *, const char *);internal_proto(format_error);extern void free_format_data (st_parameter_dt *);internal_proto(free_format_data);/* transfer.c */#define SCRATCH_SIZE 300extern const char *type_name (bt);internal_proto(type_name);extern void *read_block (st_parameter_dt *, int *);internal_proto(read_block);extern void *write_block (st_parameter_dt *, int);internal_proto(write_block);extern gfc_offset next_array_record (st_parameter_dt *, array_loop_spec *);internal_proto(next_array_record);extern gfc_offset init_loop_spec (gfc_array_char *, array_loop_spec *);internal_proto(init_loop_spec);extern void next_record (st_parameter_dt *, int);internal_proto(next_record);extern void reverse_memcpy (void *, const void *, size_t);internal_proto (reverse_memcpy);/* read.c */extern void set_integer (void *, GFC_INTEGER_LARGEST, int);internal_proto(set_integer);extern GFC_UINTEGER_LARGEST max_value (int, int);internal_proto(max_value);extern int convert_real (st_parameter_dt *, void *, const char *, int);internal_proto(convert_real);extern void read_a (st_parameter_dt *, const fnode *, char *, int);internal_proto(read_a);extern void read_f (st_parameter_dt *, const fnode *, char *, int);internal_proto(read_f);extern void read_l (st_parameter_dt *, const fnode *, char *, int);internal_proto(read_l);extern void read_x (st_parameter_dt *, int);internal_proto(read_x);extern void read_radix (st_parameter_dt *, const fnode *, char *, int, int);internal_proto(read_radix);extern void read_decimal (st_parameter_dt *, const fnode *, char *, int);internal_proto(read_decimal);/* list_read.c */extern void list_formatted_read (st_parameter_dt *, bt, void *, int, size_t,				 size_t);internal_proto(list_formatted_read);extern void finish_list_read (st_parameter_dt *);internal_proto(finish_list_read);extern void namelist_read (st_parameter_dt *);internal_proto(namelist_read);extern void namelist_write (st_parameter_dt *);internal_proto(namelist_write);/* write.c */extern void write_a (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_a);extern void write_b (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_b);extern void write_d (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_d);extern void write_e (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_e);extern void write_en (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_en);extern void write_es (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_es);extern void write_f (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_f);extern void write_i (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_i);extern void write_l (st_parameter_dt *, const fnode *, char *, int);internal_proto(write_l);extern void write_o (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_o);extern void write_x (st_parameter_dt *, int, int);internal_proto(write_x);extern void write_z (st_parameter_dt *, const fnode *, const char *, int);internal_proto(write_z);extern void list_formatted_write (st_parameter_dt *, bt, void *, int, size_t,				  size_t);internal_proto(list_formatted_write);/* error.c */extern try notify_std (int, const char *);internal_proto(notify_std);/* size_from_kind.c */extern size_t size_from_real_kind (int);internal_proto(size_from_real_kind);extern size_t size_from_complex_kind (int);internal_proto(size_from_complex_kind);/* lock.c */extern void free_ionml (st_parameter_dt *);internal_proto(free_ionml);static inline voidinc_waiting_locked (gfc_unit *u){#ifdef HAVE_SYNC_FETCH_AND_ADD  (void) __sync_fetch_and_add (&u->waiting, 1);#else  u->waiting++;#endif}static inline intpredec_waiting_locked (gfc_unit *u){#ifdef HAVE_SYNC_FETCH_AND_ADD  return __sync_add_and_fetch (&u->waiting, -1);#else  return --u->waiting;#endif}static inline voiddec_waiting_unlocked (gfc_unit *u){#ifdef HAVE_SYNC_FETCH_AND_ADD  (void) __sync_fetch_and_add (&u->waiting, -1);#else  __gthread_mutex_lock (&unit_lock);  u->waiting--;  __gthread_mutex_unlock (&unit_lock);#endif}#endif/* ../runtime/environ.c  This is here because we return unit_convert.  */unit_convert get_unformatted_convert (int);internal_proto(get_unformatted_convert);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -