Lines Matching defs:pr
37 #include "pr.h"
41 #define _PATH_PR "/usr/bin/pr"
43 struct pr *
49 struct pr *pr;
51 pr = xcalloc(1, sizeof(*pr));
77 pr->ostdout = dup(STDOUT_FILENO);
84 pr->kq = kqueue();
85 if (pr->kq == -1)
87 pr->e = xmalloc(sizeof(struct kevent));
88 EV_SET(pr->e, pid, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, NULL);
89 if (kevent(pr->kq, pr->e, 1, NULL, 0, NULL) == -1)
92 return (pr);
95 /* close the pipe to pr and restore stdout */
97 stop_pr(struct pr *pr)
99 if (pr == NULL)
103 if (pr->ostdout != STDOUT_FILENO) {
105 dup2(pr->ostdout, STDOUT_FILENO);
106 close(pr->ostdout);
108 if (kevent(pr->kq, NULL, 0, pr->e, 1, NULL) == -1)
110 close(pr->kq);
111 free(pr);