我正在为OS X和Linux编写一个C程序,并且我想根据是否将其输出到终端来调整输出。我知道我们已经在Shell脚本中介绍了如何执行此操作
但是,如何在C程序中执行此操作?
用途isatty()
:
$ man isatty
ISATTY(3) Linux Programmer's Manual ISATTY(3)
NAME
isatty - does this descriptor refer to a terminal
SYNOPSIS
#include <unistd.h>
int isatty(int desc);
DESCRIPTION
returns 1 if desc is an open file descriptor connected to a terminal
and 0 otherwise.
由于stdout
始终是文件描述符1,因此您可以执行以下操作:
if(isatty(1))
// stdout is a terminal
问题内容: 我希望Java程序具有不同的默认设置(详细程度,可能在支持时显示彩色输出),具体取决于其用途。在C语言中,有一个isatty()函数,如果将文件描述符连接到终端,该函数将返回1,否则返回0。在Java中有与此等效的功能吗?我在JavaDoc中没有看到InputStream或PrintStream的任何内容。 问题答案: 如果已连接,System.console()将返回您的应用程序所连
有一个用@Cacheable注释的方法返回一个对象: 和UserData对象: 如何检测是否调用了带注释的@Cacheable方法,或者其输出是否来自缓存? 解决方法是注入CacheManager并手动检测: 然而,为了简单起见,这段代码没有使用@Cacheable注释。 是否可以使用@Cacheable并检测输出是否来自缓存?
问题内容: 有没有办法检测是否已连接到控制台终端?例如,我希望能够检测foo.py是否通过以下方式运行: 要么 我问这个问题的原因是,我想确保进度条显示仅在前一种情况下发生(真实控制台)。 问题答案: if sys.stdout.isatty(): # You’re running in a real terminal else: # You’re being piped or redirecte
问题内容: 在Go语言中,您可以通过添加ZONEINFO环境变量来指定要使用的特定zoneinfo.zip文件,该变量指向要用于时区信息的特定文件。这很棒,因为它使我可以确保前端和后端使用的IANA时区数据库的版本相同。 但是,似乎没有任何方法可以检测对指定区域信息文件的使用是否失败。查看源代码(https://golang.org/src/time/zoneinfo.go),看来使用指定文件的任
本文向大家介绍C#检测DataSet是否为空的方法,包括了C#检测DataSet是否为空的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#检测DataSet是否为空的方法。分享给大家供大家参考。具体如下: 下面的代码片段通过判断DataSet的Table数量来判断DataSet是否为空 希望本文所述对大家的C#程序设计有所帮助。
我使用高斯朴素贝叶斯(Gaussian Naive Bayes)从熊猫(Pandas)数据帧中训练模型,但使用precision\u recall\u曲线时出现错误。文档中说precision\u recall\u曲线将预测的概率作为输入(至少在我读到的时候),因此我希望下面的方法能够起作用(xtrain和xtest分别是736行和184行的熊猫数据帧;ytrain/ytest分别是736行和18