GitHub

@@ -391,6 +391,28 @@ mrb_file__gethome(mrb_state *mrb, mrb_value klass)

391391

#endif

392392

}

393393394+

static mrb_value

395+

mrb_file_atime(mrb_state *mrb, mrb_value self)

396+

{

397+

int fd = mrb_io_fileno(mrb, self);

398+

mrb_stat st;

399+400+

if (mrb_fstat(fd, &st) == -1)

401+

return mrb_nil_value();

402+

return mrb_int_value(mrb, (mrb_int)st.st_atime);

403+

}

404+405+

static mrb_value

406+

mrb_file_ctime(mrb_state *mrb, mrb_value self)

407+

{

408+

int fd = mrb_io_fileno(mrb, self);

409+

mrb_stat st;

410+411+

if (mrb_fstat(fd, &st) == -1)

412+

return mrb_nil_value();

413+

return mrb_int_value(mrb, (mrb_int)st.st_ctime);

414+

}

415+394416

static mrb_value

395417

mrb_file_mtime(mrb_state *mrb, mrb_value self)

396418

{

@@ -610,6 +632,8 @@ mrb_init_file(mrb_state *mrb)

610632

mrb_define_class_method(mrb, file, "_gethome", mrb_file__gethome, MRB_ARGS_OPT(1));

611633612634

mrb_define_method(mrb, file, "flock", mrb_file_flock, MRB_ARGS_REQ(1));

635+

mrb_define_method(mrb, file, "_atime", mrb_file_atime, MRB_ARGS_NONE());

636+

mrb_define_method(mrb, file, "_ctime", mrb_file_ctime, MRB_ARGS_NONE());

613637

mrb_define_method(mrb, file, "_mtime", mrb_file_mtime, MRB_ARGS_NONE());

614638

mrb_define_method(mrb, file, "size", mrb_file_size, MRB_ARGS_NONE());

615639

mrb_define_method(mrb, file, "truncate", mrb_file_truncate, MRB_ARGS_REQ(1));

Read the original on github.com ↗