我有点怀疑
首先:可以创建的文件流(可读流或可写流)的最大数量是否有限制?
Like a [...[readable, writable]] streams array of n files
第二:在操作系统中打开的最大文件数是否仅适用于在“打开”上使用流事件时?
Like in linux by default is 1024 per process
第三:这是否直接影响在“开放”同时事件上存在的最大流数?
Like 1024 simultaneous 'open' stream event per process
如果有人有关于它的信息,谢谢你分享它和你的时间,为任何错误
linux命令"lsof“返回正在访问的文件,我在shell中尝试使用vi打开一个文件,用kwrite打开另一个文件,然后返回并得到vi的进程,但没有kwrite进程,如下所示
[linux@localhost shell_ex]$ lsof +d .
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 3458 linux cwd DIR 253,2 50 953101 .
bash 3747 linux cwd DIR 253,2 50 95
在Windows (MinGW)中,我的程序从调用进程继承不必要的句柄。
这个过程不需要打开这些文件,但是由于它存在于父进程的生命周期之外,所以我会遇到打开文件时通常会遇到的问题。
在Linux上,我解决了这样的问题:
// Close all file descriptors
// It's hard to figure out how many are open, but the first 1000 should do
int fd;
for (fd = 0; fd < 1000; fd++)
close (fd);
这在Windows中似乎不起作用。
如何确定哪些文件
我目前正在尝试运行一个dos控制台应用程序,该应用程序必须同时打开一定数量的文件(超过15个)。我试过用dosbox和dosemu。Dosbox应该支持127个同时文件,而dosemu有可以设置此限制的config.sys文件。所以我尝试了一个小的C程序来打开文件,我得到了这样的结果:
int main (void) {
FILE *archivos[300];
char numstr[15];
int i=0,nmax=0;
printf("\nIngrese el numero maximo de archivos que desea crear: ")
我在RubyMonk书1CH9.1上演示一个概念的默认代码是这样的。如何关闭打开的文件?显然,我在返回后运行了太多次,现在它返回了这个错误:
# open the file "new-fd" and create a file descriptor:
fd = IO.sysopen("new-fd", "w")
# create a new I/O stream using the file descriptor for "new-fd":
p IO.new(fd)
STDOUT:
class: Errno::EMFILE
m