检查C程序是从Shell / CMD窗口还是通过快捷方式启动的

时间:2016-01-21 12:59:14

标签: c windows shell unix cmd

这不重复。我的问题没有被其他线程解决了!

我知道,在Windows计算机上,您可以通过扩展%cmdcmdline%环境变量并检查路径是否引用"%SystemRoot%\ System32 \ cmd.exe"来实现此目的。

UNIX / LINUX机器上的等价物是什么? 有跨平台的方法吗? _isatty()会起作用吗?我试过了,但它似乎没有做我想要的......

PS:我试图保持CMD / Shell打开并等待一个密钥仅在从快捷方式调用该应用程序时。如果从开放的CMD / Shell窗口中调用应用程序,我不想等待密钥...

编辑1:

我创建了一个方法

close_on_tty();

定义如下:

void close_on_tty() {
    if(!_isatty(_fileno(stdin)) {
        printf("Press any key to exit...");
        getchar();
    }
    return;
}

我在main方法中的每一个exit语句之前都放了这个方法。但它仍然不适合我。有什么建议?这是跨平台吗?它也适用于Windows吗?我认为它会,因为它在MSDN文档中......

0 个答案:

没有答案