gpt4 book ai didi

linux - Linux 程序如何知道它是如何启动 : from command line? 或由 cron 或其他东西启动的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:39 25 4
gpt4 key购买 nike

主题说明了一切:在 Linux 下运行的程序需要知道它是如何启动的。如何做到这一点?

谢谢!

--皮特

最佳答案

当在命令行运行时,通常至少有一个标准文件描述符是一个终端,即使不是,通常也存在一个控制终端。当从 cron 运行时,这通常不是真的。

if (isatty(STDIN_FILENO) || isatty(STDOUT_FILENO) || isatty(STDERR_FILENO))
puts("One of my standard file descriptors is a terminal");

int fd = open("/dev/tty", O_RDWR);
if (fd != -1) {
puts("I have a controlling terminal");
close(fd);
}

还有其他的差异,比如环境等等,但是这些都不靠谱。 (即使那些 getppid 解决方案也不一定有效 — cron 可能会在 sh 中启动您的工作。)

关于linux - Linux 程序如何知道它是如何启动 : from command line? 或由 cron 或其他东西启动的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4817672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com