问题描述
晚上好。
我有一个简单的 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 不支持这些设置。
它在这里当然有效......