Bash (WSL):无法限制使用 ulimit -f 写入的文件大小

问题描述

晚上好。

我有一个简单的 C++ 程序 Push,它编写了 400,000 行 infinite_print.cpp

在另一个 bash 脚本 "abcde...xyz" 中,我执行了上述 C++ 代码并将输出重定向script.sh,即 output.txt

我尝试通过设置 ./infinite_print.exe > output.txt 来限制使用此 bash 脚本创建的 output.txt 的大小,但失败了。 ulimit -f 10 的结果大小为 11MB。

Stackoverflow 说我还不允许在我的问题中附加屏幕截图,因此可以在此链接 here 中找到执行 output.txt 的屏幕截图。

我尝试阅读script.sh,然后搜索man bash、谷歌搜索等等,但仍然不知道我做错了什么......

出于绝望,我创建了这个帐户并发布了这个问题。非常感谢所有帮助:(

编辑:如果相关,我在 WSL(Linux 的 Windows 子系统)上使用 Bash。

/ulimit 的源代码

infinite_print.cpp

1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int limit = 400000; 5 6 int main() { 7 for (int i = 0; i < limit; ++i) { 8 cout << "abcdefghijklmnopqrstuvwxyz\n"; 9 } 10 } 的源代码

script.sh

解决方法

bash 的手册页指出: 在允许此类控制的系统上,提供对可用于 shell 和由它启动的进程的资源的控制。

查看屏幕截图,这些权限表明您没有在 Linux 或其他一些 Unix 系统下运行。也许您在使用 Linux 子系统的 Windows 上运行并且 Windows 不支持这些设置。

它在这里当然有效......

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...