Bash (WSL): 无法限制使用 ulimit -f 写入的文件的大小
Bash (WSL): Unable to limit the size of files written using ulimit -f
晚上好。
我有一个简单的 C++ 程序 infinite_print.cpp
写了 400,000 行 "abcde...xyz"
.
在另一个 bash 脚本 script.sh
中,我执行了所述 C++ 代码并将输出重定向到 output.txt
,即 ./infinite_print.exe > output.txt
.
我尝试通过设置 ulimit -f 10
来限制使用此 bash 脚本创建的 output.txt
的大小,但失败了。 output.txt
的结果大小为 11MB。
Whosebug 说我还不允许将屏幕截图附加到我的问题中,因此可以在此 link here.
中找到执行 script.sh
的屏幕截图
我尝试阅读 man bash
,然后搜索 /ulimit
、谷歌搜索等,但仍然不知道我做错了什么...
出于绝望,我创建了这个帐户并发布了这个问题。非常感谢所有帮助:(
编辑:在相关的地方,我在 WSL 上使用 Bash(Linux 的 Windows 子系统)。
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
的源代码:
1 #!/bin/bash
2
3 printf "Current ulimit: "; ulimit -f
4
5 # Set new ulimit.
6 ulimit -f 10
7 printf "New ulimit: "; ulimit -f
8
9 g++ infinite_print.cpp -o inf.exe
10 ./inf.exe > output.txt
11
12 ls -lh output.txt
bash 的手册页指出:
在允许此类控制的系统上,提供对 shell 及其启动的进程可用资源的控制。
查看屏幕截图,这些权限表明您不在 Linux 或其他一些 Unix 系统下 运行。也许您在 Windows 上 运行 使用 Linux 子系统并且 Windows 不支持这些设置。
它在这里确实有效...
晚上好。
我有一个简单的 C++ 程序 infinite_print.cpp
写了 400,000 行 "abcde...xyz"
.
在另一个 bash 脚本 script.sh
中,我执行了所述 C++ 代码并将输出重定向到 output.txt
,即 ./infinite_print.exe > output.txt
.
我尝试通过设置 ulimit -f 10
来限制使用此 bash 脚本创建的 output.txt
的大小,但失败了。 output.txt
的结果大小为 11MB。
Whosebug 说我还不允许将屏幕截图附加到我的问题中,因此可以在此 link here.
中找到执行script.sh
的屏幕截图
我尝试阅读 man bash
,然后搜索 /ulimit
、谷歌搜索等,但仍然不知道我做错了什么...
出于绝望,我创建了这个帐户并发布了这个问题。非常感谢所有帮助:(
编辑:在相关的地方,我在 WSL 上使用 Bash(Linux 的 Windows 子系统)。
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
的源代码:
1 #!/bin/bash
2
3 printf "Current ulimit: "; ulimit -f
4
5 # Set new ulimit.
6 ulimit -f 10
7 printf "New ulimit: "; ulimit -f
8
9 g++ infinite_print.cpp -o inf.exe
10 ./inf.exe > output.txt
11
12 ls -lh output.txt
bash 的手册页指出: 在允许此类控制的系统上,提供对 shell 及其启动的进程可用资源的控制。
查看屏幕截图,这些权限表明您不在 Linux 或其他一些 Unix 系统下 运行。也许您在 Windows 上 运行 使用 Linux 子系统并且 Windows 不支持这些设置。
它在这里确实有效...