Date: Fri, 16 Mar 2001 12:51:56 GMT From: fracture@allusion.net To: FreeBSD-gnats-submit@freebsd.org Subject: bin/25855: /bin/ps issue when output isn't to a tty Message-ID: <200103161251.f2GCpuk22673@cx420564-b.tucson1.az.home.com>
next in thread | raw e-mail | index | archive | help
>Number: 25855 >Category: bin >Synopsis: /bin/ps issue when output isn't to a tty >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Mar 16 12:10:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Jordan DeLong >Release: FreeBSD 4.2-RELEASE i386 >Organization: N/A >Environment: N/A >Description: When the output from /bin/ps is piped to another program, it limits it's output to a width of 79 cols. This causes problems with commands such as: ps aux | grep httpd because if the httpd part is past the 79 col mark, the grep wont find it. right now the way around this is to use ps wwaux | grep httpd but it doesn't make sense to have to specify terminal "width" if the output isn't to a terminal >How-To-Repeat: easiest way to repeat is to use the -e options so nothing will manage to be in the <79 cols for the grep to read it. so for instance: # ps eaxu | grep getty will not show anything. >Fix: this checks if the stdout is a tty before limiting the cols used diff -crN /usr/src/bin/ps/ps.c ps/ps.c *** /usr/src/bin/ps/ps.c Sat Jul 8 05:14:43 2000 --- ps/ps.c Fri Mar 16 10:56:18 2001 *************** *** 127,139 **** (void) setlocale(LC_ALL, ""); ! if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && ! ioctl(STDERR_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && ! ioctl(STDIN_FILENO, TIOCGWINSZ, (char *)&ws) == -1) || ! ws.ws_col == 0) ! termwidth = 79; ! else ! termwidth = ws.ws_col - 1; if (argc > 1) argv[1] = kludge_oldps_options(argv[1]); --- 127,143 ---- (void) setlocale(LC_ALL, ""); ! if (isatty(STDOUT_FILENO)) { ! if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && ! ioctl(STDERR_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && ! ioctl(STDIN_FILENO, TIOCGWINSZ, (char *)&ws) == -1) || ! ws.ws_col == 0) ! termwidth = 79; ! else ! termwidth = ws.ws_col - 1; ! } else { ! termwidth = UNLIMITED; ! } if (argc > 1) argv[1] = kludge_oldps_options(argv[1]); >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103161251.f2GCpuk22673>