Lines Matching refs:fd

220 	int			fd;  in inetopen()  local
274 fd = getaddrinfo(s, t, &hint, &addr); in inetopen()
277 fd = -1; in inetopen()
279 if (fd) in inetopen()
281 if (fd != EAI_SYSTEM) in inetopen()
287 fd = -1; in inetopen()
298 while ((fd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) >= 0) in inetopen()
300 …if (server && !bind(fd, p->ai_addr, p->ai_addrlen) && !listen(fd, 5) || !server && !connect(fd, p-… in inetopen()
302 close(fd); in inetopen()
303 fd = -1; in inetopen()
312 if (fd >= 0) in inetopen()
314 return fd; in inetopen()
366 int fd; member
372 Sfoff_t end, cur =lseek(ep->fd, (Sfoff_t)0, SEEK_CUR); in nget_cur_eof()
377 end =lseek(ep->fd, (Sfoff_t)0, SEEK_END); in nget_cur_eof()
378 lseek(ep->fd, (Sfoff_t)0, SEEK_CUR); in nget_cur_eof()
406 int sh_iovalidfd(Shell_t *shp, int fd) in sh_iovalidfd() argument
411 if(fd<0) in sh_iovalidfd()
413 if(fd < shp->gd->lim.open_max) in sh_iovalidfd()
416 if(fd >= max) in sh_iovalidfd()
421 n = (fd+16)&~0xf; in sh_iovalidfd()
440 int sh_inuse(Shell_t *shp, int fd) in sh_inuse() argument
442 return(fd < shp->gd->lim.open_max && shp->fdptrs[fd]); in sh_inuse()
517 Sfio_t *sh_iostream(Shell_t *shp, register int fd) in sh_iostream() argument
520 register int status = sh_iocheckfd(shp,fd); in sh_iostream()
526 switch(fd) in sh_iostream()
549 if((iop = shp->sftable[fd]) && sffileno(iop)>=0) in sh_iostream()
555 else if(!(iop=sfnew((fd<=2?iop:0),bp,IOBSIZE,fd,flags))) in sh_iostream()
586 shp->sftable[fd] = iop; in sh_iostream()
595 register int fd; in io_preserve() local
597 fd = sfsetfd(sp,10); in io_preserve()
599 fd = sh_fcntl(f2,F_DUPFD,10); in io_preserve()
601 shp->infd = fd; in io_preserve()
602 if(fd<0) in io_preserve()
609 VALIDATE_FD(shp, fd); in io_preserve()
612 if(shp->fdptrs[fd]=shp->fdptrs[f2]) in io_preserve()
614 if(f2==job.fd) in io_preserve()
615 job.fd=fd; in io_preserve()
616 *shp->fdptrs[fd] = fd; in io_preserve()
619 shp->sftable[fd] = sp; in io_preserve()
620 shp->fdstatus[fd] = shp->fdstatus[f2]; in io_preserve()
623 fcntl(fd,F_SETFD,FD_CLOEXEC); in io_preserve()
624 shp->fdstatus[fd] |= IOCLEX; in io_preserve()
689 int sh_close(register int fd) in sh_close() argument
694 if(fd<0) in sh_close()
697 VALIDATE_FD(shp, fd); in sh_close()
699 if(!(sp=shp->sftable[fd]) || sfclose(sp) < 0) in sh_close()
703 (*fdnotify)(fd,SH_FDCLOSE); in sh_close()
704 while((r=close(fd)) < 0 && errno==EINTR) in sh_close()
707 if(fd>2) in sh_close()
708 shp->sftable[fd] = 0; in sh_close()
709 shp->fdstatus[fd] = IOCLOSE; in sh_close()
710 if(shp->fdptrs[fd]) in sh_close()
711 *shp->fdptrs[fd] = -1; in sh_close()
712 shp->fdptrs[fd] = 0; in sh_close()
713 if(fd < 10) in sh_close()
714 shp->inuse_bits &= ~(1<<fd); in sh_close()
744 register int fd = -1; in sh_open() local
771 fd = (int)strtol(path+8, &e, 10); in sh_open()
773 fd = -1; in sh_open()
782 fd = 2; in sh_open()
786 fd = 0; in sh_open()
790 fd = 1; in sh_open()
795 if (fd < 0) in sh_open()
797 if ((fd = inetopen(path+5, flags, onintr, shp)) < 0 && errno != ENOTDIR) in sh_open()
800 return(fd>=0); in sh_open()
801 if (fd >= 0) in sh_open()
808 if (fd >= 0) in sh_open()
821 fd = nfd; in sh_open()
824 if((mode=sh_iocheckfd(shp,fd))==IOCLOSE) in sh_open()
831 if((fd=dup(fd))<0) in sh_open()
844 while((fd = open(path, flags, mode)) < 0) in sh_open()
856 VALIDATE_FD(shp, fd); in sh_open()
857 shp->fdstatus[fd] = mode; in sh_open()
858 return(fd); in sh_open()
867 register int fd = sh_open(name,O_RDONLY,0); in sh_chkopen() local
868 if(fd < 0) in sh_chkopen()
870 return(fd); in sh_chkopen()
898 int fd[2]; in sh_pipe() local
899 if(pipe(fd)<0 || (pv[0]=fd[0])<0 || (pv[1]=fd[1])<0) in sh_pipe()
921 int fd[2]; in sh_rpipe() local
922 if(pipe(fd)<0 || (pv[0]=fd[0])<0 || (pv[1]=fd[1])<0) in sh_rpipe()
937 int fd = accept(pv[0],(struct sockaddr*)0,(socklen_t*)0); in sh_coaccept() local
940 if(fd<0) in sh_coaccept()
942 if((pv[out]=sh_fcntl(fd,F_DUPFD,10)) >=10) in sh_coaccept()
943 sh_close(fd); in sh_coaccept()
945 pv[out] = sh_iomovefd(fd); in sh_coaccept()
1013 int r, fd, close_exec; in io_patseek() local
1017 fd = sffileno(sp); in io_patseek()
1018 VALIDATE_FD(shp, fd); in io_patseek()
1019 close_exec = shp->fdstatus[fd]&IOCLEX; in io_patseek()
1021 if(fd==0) in io_patseek()
1046 if(fd==0 && !(was_share&SF_SHARE)) in io_patseek()
1065 endf.fd = fn; in file_offset()
1098 int fd,r; in io_usename() local
1101 if((fd = sh_open(name,O_RDONLY,0)) >= 0) in io_usename()
1103 r = fstat(fd,&statb); in io_usename()
1104 close(fd); in io_usename()
1111 else if(fd < 0 && errno!=ENOENT) in io_usename()
1114 while((fd=readlink(name, path, PATH_MAX)) >0) in io_usename()
1117 name[fd] = 0; in io_usename()
1160 register int fd, iof; in sh_redirect() local
1261 fd = io_heredoc(shp,iop,fname,traceon); in sh_redirect()
1263 sh_close(fd); in sh_redirect()
1270 if((fd=fname[0])>='0' && fd<='9') in sh_redirect()
1298 else if(fd=='-' && fname[1]==0) in sh_redirect()
1300 fd= -1; in sh_redirect()
1303 else if(fd=='p' && fname[1]==0) in sh_redirect()
1319 if((fd=sh_fcntl(dupfd,F_DUPFD,3))<0) in sh_redirect()
1321 VALIDATE_FD(shp, fd); in sh_redirect()
1323 shp->fdstatus[fd] = (shp->fdstatus[dupfd]&~IOCLEX); in sh_redirect()
1324 if(toclose<0 && shp->fdstatus[fd]&IOREAD) in sh_redirect()
1325 shp->fdstatus[fd] |= IODUP; in sh_redirect()
1349 fd=sh_chkopen(fname); in sh_redirect()
1395 if((fd=sh_open(tname?tname:fname,o_mode,RW_ALL)) <0) in sh_redirect()
1399 fchmod(fd,perm); in sh_redirect()
1505 if(fd==fn) in sh_redirect()
1507 if((r=sh_fcntl(fd,F_DUPFD,10)) > 0) in sh_redirect()
1509 fd = r; in sh_redirect()
1518 if(fd<0) in sh_redirect()
1529 return(fd); in sh_redirect()
1530 if(fd>=0) in sh_redirect()
1535 fn = fd; in sh_redirect()
1536 if(fd<10) in sh_redirect()
1538 if((fn=fcntl(fd,F_DUPFD,10)) < 0) in sh_redirect()
1544 shp->fdstatus[fn] = shp->fdstatus[fd]; in sh_redirect()
1545 sh_close(fd); in sh_redirect()
1546 fd = fn; in sh_redirect()
1552 sh_iocheckfd(shp,fd); in sh_redirect()
1556 fd = sh_iorenumber(shp,sh_iomovefd(fd),fn); in sh_redirect()
1561 if(fd >2 && clexec) in sh_redirect()
1563 fcntl(fd,F_SETFD,FD_CLOEXEC); in sh_redirect()
1564 shp->fdstatus[fd] |= IOCLEX; in sh_redirect()
1582 register int fd; in io_heredoc() local
1616 fd = (*cp=='$' || *cp=='\'')?' ':'\\'; in io_heredoc()
1617 sfprintf(sfstderr," %c%s\n",fd,cp); in io_heredoc()
1649 fd = sffileno(outfile); in io_heredoc()
1654 lseek(fd,(off_t)0,SEEK_SET); in io_heredoc()
1655 shp->fdstatus[fd] = IOREAD; in io_heredoc()
1656 return(fd); in io_heredoc()
1739 if(origfd==job.fd) in sh_iosave()
1740 job.fd = savefd; in sh_iosave()
1762 register int fd, savefd, newfd; in sh_iounsave() local
1763 for(newfd=fd=0; fd < shp->topfd; fd++) in sh_iounsave()
1765 if((savefd = filemap[fd].save_fd)< 0) in sh_iounsave()
1766 filemap[newfd++] = filemap[fd]; in sh_iounsave()
1782 register int origfd, savefd, fd; in sh_iorestore() local
1785 for (fd = shp->topfd - 1; fd >= last; fd--) in sh_iorestore()
1787 if(!flag && filemap[fd].subshell) in sh_iorestore()
1791 if ((savefd = filemap[fd].save_fd) >= 0) in sh_iorestore()
1799 origfd = filemap[fd].orig_fd; in sh_iorestore()
1804 savefd = filemap[fd].save_fd; in sh_iorestore()
1810 if(filemap[fd].tname == Empty && shp->exitval==0) in sh_iorestore()
1812 else if(filemap[fd].tname) in sh_iorestore()
1813 io_usename(filemap[fd].tname,(int*)0,origfd,shp->exitval?2:1); in sh_iorestore()
1815 if ((savefd = filemap[fd].save_fd) >= 0) in sh_iorestore()
1819 if(savefd==job.fd) in sh_iorestore()
1820 job.fd=origfd; in sh_iorestore()
1842 for (fd = last ; fd < shp->topfd; fd++) in sh_iorestore()
1844 if(filemap[fd].subshell) in sh_iorestore()
1845 filemap[last++] = filemap[fd]; in sh_iorestore()
1857 int sh_ioaccess(int fd,register int mode) in sh_ioaccess() argument
1863 if((flags=sh_iocheckfd(shp,fd))!=IOCLOSE) in sh_ioaccess()
1965 int fd = sffileno(iop); in piperead() local
1979 if(!(shp->fdstatus[fd]&IOCLEX) && (sfset(iop,0,0)&SF_SHARE)) in piperead()
1980 size = ed_read(shgd->ed_context, fd, (char*)buff, size,0); in piperead()
2072 int sh_iocheckfd(Shell_t *shp, register int fd) in sh_iocheckfd() argument
2076 VALIDATE_FD(shp, fd); in sh_iocheckfd()
2078 if((n=shp->fdstatus[fd])&IOCLOSE) in sh_iocheckfd()
2083 if((flags=fcntl(fd,F_GETFL,0)) < 0) in sh_iocheckfd()
2084 return(shp->fdstatus[fd]=IOCLOSE); in sh_iocheckfd()
2091 if((flags = fstat(fd,&statb))< 0) in sh_iocheckfd()
2092 return(shp->fdstatus[fd]=IOCLOSE); in sh_iocheckfd()
2094 if(read(fd,"",0) < 0) in sh_iocheckfd()
2109 if(tty_check(fd)) in sh_iocheckfd()
2111 if(lseek(fd,NIL(off_t),SEEK_CUR)<0) in sh_iocheckfd()
2115 if((fstat(fd,&statb)>=0) && S_ISSOCK(statb.st_mode)) in sh_iocheckfd()
2127 else if((fstat(fd,&statb)>=0) && ( in sh_iocheckfd()
2140 if(fd==0) in sh_iocheckfd()
2142 else if(fd==1) in sh_iocheckfd()
2144 shp->fdstatus[fd] = n; in sh_iocheckfd()
2243 register int fd = sffileno(sp); in sftrack() local
2269 if(fd<0 || fd==PSEUDOFD || !VALIDATE_FD(shp, fd)) in sftrack()
2274 if(sp==shp->heredocs && fd < 10 && flag==SF_SETFD) in sftrack()
2276 fd = sfsetfd(sp,10); in sftrack()
2277 fcntl(fd,F_SETFD,FD_CLOEXEC); in sftrack()
2279 if(fd < 3) in sftrack()
2283 if(!shp->sftable[fd] && shp->fdstatus[fd]==IOCLOSE) in sftrack()
2285 shp->sftable[fd] = sp; in sftrack()
2289 shp->fdstatus[fd] = flag; in sftrack()
2290 sh_iostream(shp,fd); in sftrack()
2310 shp->sftable[fd] = 0; in sftrack()
2311 shp->fdstatus[fd]=IOCLOSE; in sftrack()
2534 ssize_t sh_read(register int fd, void* buff, size_t n) in sh_read() argument
2539 VALIDATE_FD(shp, fd); in sh_read()
2540 if(sp=shp->sftable[fd]) in sh_read()
2543 return(read(fd,buff,n)); in sh_read()
2550 ssize_t sh_write(register int fd, const void* buff, size_t n) in sh_write() argument
2555 VALIDATE_FD(shp, fd); in sh_write()
2556 if(sp=shp->sftable[fd]) in sh_write()
2559 return(write(fd,buff,n)); in sh_write()
2566 off_t sh_seek(register int fd, off_t offset, int whence) in sh_seek() argument
2571 VALIDATE_FD(shp, fd); in sh_seek()
2572 if((sp=shp->sftable[fd]) && (sfset(sp,0,0)&(SF_READ|SF_WRITE))) in sh_seek()
2575 return(lseek(fd,offset,whence)); in sh_seek()
2582 register int fd = dup(old); in sh_dup() local
2585 VALIDATE_FD(shp, fd); in sh_dup()
2586 if(fd>=0) in sh_dup()
2590 shp->fdstatus[fd] = (shp->fdstatus[old]&~IOCLEX); in sh_dup()
2592 (*fdnotify)(old,fd); in sh_dup()
2594 return(fd); in sh_dup()
2598 int sh_fcntl(register int fd, int op, ...) in sh_fcntl() argument
2606 newfd = fcntl(fd,op,arg); in sh_fcntl()
2608 VALIDATE_FD(shp, fd); in sh_fcntl()
2614 if(shp->fdstatus[fd] == IOCLOSE) in sh_fcntl()
2615 shp->fdstatus[fd] = 0; in sh_fcntl()
2616 shp->fdstatus[newfd] = (shp->fdstatus[fd]&~IOCLEX); in sh_fcntl()
2618 (*fdnotify)(fd,newfd); in sh_fcntl()
2621 if(shp->fdstatus[fd] == IOCLOSE) in sh_fcntl()
2622 shp->fdstatus[fd] = 0; in sh_fcntl()
2624 shp->fdstatus[fd] |= IOCLEX; in sh_fcntl()
2626 shp->fdstatus[fd] &= ~IOCLEX; in sh_fcntl()
2646 Sfio_t *sh_iogetiop(int fd, int mode) in sh_iogetiop() argument
2656 switch(fd) in sh_iogetiop()
2661 fd = sffileno(shp->gd->hist_ptr->histfp); in sh_iogetiop()
2665 fd = shp->coutpipe; in sh_iogetiop()
2667 fd = shp->cpipe[0]; in sh_iogetiop()
2670 if(fd<0 || !sh_iovalidfd(shp,fd)) in sh_iogetiop()
2671 fd = -1; in sh_iogetiop()
2673 if(fd<0) in sh_iogetiop()
2678 if(!(n=shp->fdstatus[fd])) in sh_iogetiop()
2679 n = sh_iocheckfd(shp,fd); in sh_iogetiop()
2684 VALIDATE_FD(shp, fd); in sh_iogetiop()
2685 if(!(iop = shp->sftable[fd])) in sh_iogetiop()
2686 iop=sh_iostream(shp,fd); in sh_iogetiop()
2700 Sfio_t *sh_fd2sfio(int fd) in sh_fd2sfio() argument
2706 VALIDATE_FD(shp, fd); in sh_fd2sfio()
2707 sp = shp->sftable[fd]; in sh_fd2sfio()
2708 if(!sp && (status = sh_iocheckfd(shp,fd))!=IOCLOSE) in sh_fd2sfio()
2715 sp = sfnew(NULL, NULL, -1, fd,flags); in sh_fd2sfio()
2716 shp->sftable[fd] = sp; in sh_fd2sfio()
2737 int sh_isdevfd(register const char *fd) in sh_isdevfd() argument
2739 if(!fd || memcmp(fd,"/dev/fd/",8) || fd[8]==0) in sh_isdevfd()
2741 for ( fd=&fd[8] ; *fd != '\0' ; fd++ ) in sh_isdevfd()
2743 if (*fd < '0' || *fd > '9') in sh_isdevfd()
2750 int sh_fchdir(int fd) in sh_fchdir() argument
2753 while((r=fchdir(fd))<0 && errno==EINTR) in sh_fchdir()
2770 int fd; in sh_get_unused_fd() local
2774 for(fd = 0; fd < shp->topfd; fd++) { in sh_get_unused_fd()
2775 if (filemap[fd].save_fd == min_fd || filemap[fd].orig_fd == min_fd) break; in sh_get_unused_fd()
2777 if (fd == shp->topfd) break; in sh_get_unused_fd()