isattyは、ファイルディスクリプタが端末を参照しているかどうかを返す。
わかりにくいので補足すると、ファイルディスクリプタの出力先が標準出力であれば、端末は参照されていると言えるし、
リダイレクトなどで、ファイルなどに出力される場合は参照されていない。
isatty.cで、
isattyが1なら、標準出力、0なら、リダイレクトという形で判定できる。
$ vi isatty.c $ gcc isatty.c -o isatty $ ./isatty ABCDE ABCDE ABCDE ABCDE ABCDE $ ./isatty > test.txt $ cat test.txt -----header----- ABCDE ABCDE ABCDE ABCDE ABCDE -----footer----- $
リダイレクトの場合は、headerとfooterが付いているので、ちゃんと判定できてる。
Sample/unixsyscall/isatty/isatty/src/isatty at master · bg1bgst333/Sample · GitHub