我们有一个包含大量打印消息的守护进程.由于我们正在开发具有弱CPU和其他约束硬件的嵌入式设备,因此我们希望在最终版本中最小化printf消息的任何类型的成本(IO,CPU等).(用户没有控制台)
我的队友和我有分歧.他认为我们可以将所有内容重定向到/ dev/null.它不会花费任何IO,所以感情将是最小的.但我认为它仍将花费CPU,我们最好为printf定义一个宏,这样我们就可以重写"printf"(也许只是返回).
所以我需要一些关于谁是对的意见.Linux是否足够聪明以优化printf?我真的很怀疑.
我想在后台运行一个程序(google-chrome),但是阻止它向终端输出任何消息.
我试过这样做:
google-chrome 2>&1 1>/dev/null &
Run Code Online (Sandbox Code Playgroud)
但是,终端仍然填满没有消息,如:
[5746:5746:0802/100534:错误:object_proxy.cc(532)]无法调用方法:org.chromium.Mtpd.EnumerateStorag ...
我究竟做错了什么?如何将所有输出重定向到/dev/null?
我正在执行一项巨大的任务[使用perl +数据库等编写脚本的自动翻译],可以连续运行大约2周.在思考如何加快速度的同时,我看到翻译人员一直向STDOUT输出所有内容(所有翻译的句子,所有信息).这使我在控制台上获得输出时工作速度明显变慢.
我显然把输出输出到了/dev/null,但后来我想"可能有更快的东西吗?" 这是如此多的输出,它真的有所作为.
这就是我问你的问题,因为据我所知,没有什么比这更快了......(但我不仅仅是每天使用linux的大师,而且只有3年)
我想抑制在DOS下运行的脚本的输出,类似于*nix环境下的以下内容:
$ command 1>/dev/null
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Android 11 对文件存储和访问进行了多项更改。显然,其中之一是不能再将输出定位到“/dev/null”(我的场景实际上在这个老问题中得到了准确解释)。
尽管引用的问题解决了特定问题,但有一件事仍未得到解答:Android 11 相当于“/dev/null”是什么。也就是说,如果不需要特定操作的输出(在我们的例子中,它是一个创建大文件的操作)。
在 Windows 上,NUL 是空输出设备,类似于 Linux 上的 /dev/null。
在 Oracle Java 8 Update 331中,尝试获取会引发new FileOutputStream("NUL:")异常。以前(Java 8u321)它工作得很好。
问题似乎出在冒号上:
new FileOutputStream("NUL")- 好的new FileOutputStream("NUL:")- 例外任何人都可以向我指出有关此更改的文档或 JDK 源吗?我无法更改代码本身,因为它位于第 3 方库(xnio-api)中。
try
{
new FileOutputStream("NUL:");
System.out.println("OK");
}
catch (FileNotFoundException e)
{
System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud) 如何将bash上执行的所有命令重定向到/ dev/null?
很明显,对于我们必须做的命令:
command > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
所有将要执行的命令怎么样?
我试图找到一个简单的方法来打开日志记录打开和关闭,就像看到了例如一个文本文件,这里在Python.他们的解决方案是使用需要记录的有效文件名,否则使用null设备 'dev/null'.他们正在使用重定向,但我希望使用fopen.
是否有某种方法可以执行以下操作,如果重要的话,哪个单词适用于Unix或Windows系统.
nullFID = fopen('/dev/nul', 'w')
Run Code Online (Sandbox Code Playgroud)
我正在改变的脚本可以通过在某些突发场景中详细记录来获益,在这些场景中我们希望为少量文件提取一个精细的细节级别,但是对于脚本通常所针对的批处理来说,这会变得太大.
为什么我不能调用os.stat特殊的Windows文件nul?
>>> import os
>>> os.stat('nul')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 87] The parameter is incorrect: 'nul'
Run Code Online (Sandbox Code Playgroud)
我可以打开它:
>>> f = open('nul', 'r')
>>> f.read(10)
''
Run Code Online (Sandbox Code Playgroud)
我希望检查之类的特殊文件/dev/null,并nul在跨平台的方式stat.S_ISCHR,惊讶地发现,我无法统计,我可以打开一个文件.
我正在编写一个 C 程序,输出stdout到stderr. 该程序采用如下命令:
./myprogram function_to_run file_to_read
Run Code Online (Sandbox Code Playgroud)
我的程序可以输出到stdout或被定向到输出一个文件,但它不能被重定向到/dev/null. 例如:
./myprogram function_to_run file_to_read //OK
./myprogram function_to_run file_to_read > file.txt //OK
./myprogram function_to_run file_to_read > /dev/null // NOT OK, should produce error in stderr
Run Code Online (Sandbox Code Playgroud)
我尝试使用isatty(1),但它只能检测是否stdout正在输出到终端。因此,它在stdout重定向到文件的情况下失败,这在我的情况下是可以接受的
有没有办法在 C 中检查这个?如果没有,我有什么建议可以检查 /dev/null 场景吗?