Lines Matching defs:io
440 IO * const io = GvIOn(gv);
453 if (IoIFP(io)) {
454 if (IoTYPE(io) == IoTYPE_STD) {
458 const int old_fd = PerlIO_fileno(IoIFP(io));
462 *saveifp = IoIFP(io);
463 *saveofp = IoOFP(io);
464 *savetype = IoTYPE(io);
470 if (IoTYPE(io) == IoTYPE_PIPE)
471 result = PerlProc_pclose(IoIFP(io));
472 else if (IoIFP(io) != IoOFP(io)) {
473 if (IoOFP(io)) {
474 result = PerlIO_close(IoOFP(io));
475 PerlIO_close(IoIFP(io)); /* clear stdio, fd already closed */
478 result = PerlIO_close(IoIFP(io));
481 result = PerlIO_close(IoIFP(io));
493 IoOFP(io) = IoIFP(io) = NULL;
495 return io;
526 IO * const io = openn_setup(gv, mode, &saveifp, &saveofp, &savefd, &savetype);
577 IoTYPE(io) = PerlIO_intmode2str(rawmode, &mode[ix], &writing);
582 return openn_cleanup(gv, io, fp, mode, oname, saveifp, saveofp, savefd,
595 IO * const io = openn_setup(gv, mode, &saveifp, &saveofp, &savefd, &savetype);
661 IoTYPE(io) = *type;
727 mode[0] = IoTYPE(io) = IoTYPE_APPEND;
757 Perl_croak(aTHX_ "More than one argument to '%c&' open",IoTYPE(io));
807 IoTYPE(io) = IoTYPE_WRONLY;
809 IoTYPE(io) = IoTYPE_RDONLY;
813 IoTYPE(io) = IoTYPE_SOCKET;
844 IoTYPE(io) = IoTYPE_STD;
879 IoTYPE(io) = IoTYPE_STD;
937 IoTYPE(io) = IoTYPE_PIPE;
953 IoTYPE(io) = IoTYPE_RDONLY;
965 IoTYPE(io) = IoTYPE_STD;
981 return openn_cleanup(gv, io, fp, mode, oname, saveifp, saveofp, savefd,
988 S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
1000 if (IoTYPE(io) == IoTYPE_RDONLY && ckWARN(WARN_NEWLINE)
1013 if ((IoTYPE(io) == IoTYPE_RDONLY) &&
1021 else if ((IoTYPE(io) == IoTYPE_WRONLY) && fp == PerlIO_stdin()) {
1034 if (IoTYPE(io) && IoTYPE(io) != IoTYPE_PIPE && IoTYPE(io) != IoTYPE_STD && fd >= 0) {
1041 IoTYPE(io) = IoTYPE_SOCKET; /* in case a socket was passed in to us */
1045 && IoTYPE(io) != IoTYPE_WRONLY /* Dups of STD* filehandles already have */
1046 && IoTYPE(io) != IoTYPE_RDONLY /* type so they aren't marked as sockets */
1052 IoTYPE(io) = IoTYPE_SOCKET; /* some OS's return 0 on fstat()ed socket */
1135 IoIFP(io) = fp;
1137 IoFLAGS(io) &= ~IOf_NOLINE;
1139 if (IoTYPE(io) == IoTYPE_SOCKET
1140 || (IoTYPE(io) == IoTYPE_WRONLY && fd >= 0 && S_ISCHR(statbuf.st_mode)) ) {
1145 if (!(IoOFP(io) = PerlIO_openn(aTHX_ type,s,fd,0,0,NULL,0,NULL))) {
1151 IoOFP(io) = fp;
1159 IoIFP(io) = saveifp;
1160 IoOFP(io) = saveofp;
1161 IoTYPE(io) = savetype;
1262 S_argvout_free(pTHX_ SV *io, MAGIC *mg) {
1263 PERL_UNUSED_ARG(io);
1267 assert(IoTYPE(io) != IoTYPE_PIPE);
1280 if (IoIFP(io)) {
1282 (void)argvout_final(mg, (IO*)io, FALSE);
1286 PerlIO *iop = IoIFP(io);
1303 IoIFP(io) = IoOFP(io) = NULL;
1396 IO * const io = GvIOp(gv);
1406 if (io && (IoFLAGS(io) & (IOf_ARGV|IOf_START)) == (IOf_ARGV|IOf_START)) {
1407 IoFLAGS(io) &= ~IOf_START;
1416 IO * const io = GvIOp(PL_argvoutgv);
1417 if (io && IoIFP(io) && old_out_name) {
1595 if (io && (IoFLAGS(io) & IOf_ARGV))
1596 IoFLAGS(io) |= IOf_START;
1598 if (io && (IoFLAGS(io) & IOf_ARGV)
1678 S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool is_explict) {
1716 && (fd = PerlIO_fileno(IoIFP(io))) >= 0) {
1717 (void)PerlIO_flush(IoIFP(io));
1725 retval = io_close(io, NULL, is_explict, FALSE);
1878 IO *io;
1888 io = GvIO(gv);
1889 if (!io) { /* never opened */
1896 if ((mg = mg_findext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl))
1898 retval = argvout_final(mg, io, is_explict);
1899 mg_freeext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl);
1902 retval = io_close(io, NULL, is_explict, FALSE);
1905 IoLINES(io) = 0;
1906 IoPAGE(io) = 0;
1907 IoLINES_LEFT(io) = IoPAGE_LEN(io);
1909 IoTYPE(io) = IoTYPE_CLOSED;
1914 Perl_io_close(pTHX_ IO *io, GV *gv, bool is_explict, bool warn_on_fail)
1920 if (IoIFP(io)) {
1921 if (IoTYPE(io) == IoTYPE_PIPE) {
1922 PerlIO *fh = IoIFP(io);
1931 IoOFP(io) = IoIFP(io) = NULL;
1941 else if (IoTYPE(io) == IoTYPE_STD)
1944 if (IoOFP(io) && IoOFP(io) != IoIFP(io)) { /* a socket */
1945 const bool prev_err = PerlIO_error(IoOFP(io));
1948 PerlIO_restore_errno(IoOFP(io));
1950 retval = (PerlIO_close(IoOFP(io)) != EOF && !prev_err);
1951 PerlIO_close(IoIFP(io)); /* clear stdio, fd already closed */
1954 const bool prev_err = PerlIO_error(IoIFP(io));
1957 PerlIO_restore_errno(IoIFP(io));
1959 retval = (PerlIO_close(IoIFP(io)) != EOF && !prev_err);
1962 IoOFP(io) = IoIFP(io) = NULL;
1988 IO * const io = GvIO(gv);
1992 if (!io)
1994 else if (IoTYPE(io) == IoTYPE_WRONLY)
1997 while (IoIFP(io)) {
1998 if (PerlIO_has_cntptr(IoIFP(io))) { /* (the code works without this) */
1999 if (PerlIO_get_cnt(IoIFP(io)) > 0) /* cheat a little, since */
2006 const int ch = PerlIO_getc(IoIFP(io));
2008 (void)PerlIO_ungetc(IoIFP(io),ch);
2015 if (PerlIO_has_cntptr(IoIFP(io)) && PerlIO_canset_cnt(IoIFP(io))) {
2016 if (PerlIO_get_cnt(IoIFP(io)) < -1)
2017 PerlIO_set_cnt(IoIFP(io),-1);
2032 IO *const io = GvIO(gv);
2037 if (io && (fp = IoIFP(io))) {
2048 IO *const io = GvIO(gv);
2051 if (io && (fp = IoIFP(io))) {
2062 IO *const io = GvIO(gv);
2067 if (io && (fp = IoIFP(io))) {
2260 * io the write failure can be delayed until the flush/close. --jhi */
2271 IO *io;
2282 io = GvIO(gv);
2285 PL_statgv = gv ? gv : (GV *)io;
2287 if (io) {
2288 if (IoIFP(io)) {
2289 int fd = PerlIO_fileno(IoIFP(io));
2297 } else if (IoDIRP(io)) {
2298 return (PL_laststatval = PerlLIO_fstat(my_dirfd(IoDIRP(io)), &PL_statcache));
2317 io = MUTABLE_IO(SvRV(sv));
3433 Perl_start_glob (pTHX_ SV *tmpglob, IO *io)
3453 IO *io);
3455 fp = Perl_vms_start_glob(aTHX_ tmpglob, io);
3487 fp = IoIFP(io);