file-descriptors

当进程访问文件时,是否保证会创建文件描述符?具体来说,在 /proc/pid/fd 中
file-descriptors

当进程访问文件时,是否保证会创建文件描述符?具体来说,在 /proc/pid/fd 中

我正在创建一个具有以下特征的 ebpf 程序系统调用上的跟踪点读()。 该程序的目的是计算文件被读取的次数。 我目前追踪此问题的方法如下: 当 read() 的跟踪点命中时,它可以访问文件描述符 (fd) 和进程 ID (pid)。我的 c 回调代码会使用此信息执行。 代码从 /proc/{pid}/fd 中的每个文件获取 inode。如果 inode 与要监视的特定文件匹配,则我增加计数。这一切都发生在 read() 系统调用完成之前。 有时这很有效...但是我注意到一些奇怪的事情...... 较小的文件(例如总共 2 行)通常不会以这种方式被拾取,...

Admin

多个 epoll 实例中的相同 fd 用于单独的写入和读取线程
file-descriptors

多个 epoll 实例中的相同 fd 用于单独的写入和读取线程

我们可以在多个 epollfds 中使用同一个 fd 吗?我的意思是一个 epoll 实例用于捕获 EPOLLIN,一个 epoll 实例用于捕获 EPOLLOUT。 例如: int fd = ... // the file descriptor int epoll_reader = epoll_create1(0); // first epoll instance for reading int epoll_writer = epoll_create1(0); // second epoll instance for writing 为了阅读我需要这些标...

Admin

跟踪文件保存于哪些计算机
file-descriptors

跟踪文件保存于哪些计算机

有什么方法可以追踪某个文件是从哪台计算机(用户名)修改的?从中right click > Properties > Details您可以看到文件的创建者,但我想知道谁“保存”了该文件。 我是一名教师,这有助于我避免在计算机考试中作弊。 欢迎使用 Linux 或 Windows 解决方案 ...

Admin

如何查找 NGINX 打开描述符数量增加的原因?
file-descriptors

如何查找 NGINX 打开描述符数量增加的原因?

生产服务器上 NGINX 打开描述符的数量会不时增加。之后连接队列会被填满。同时 CPU 使用率也会上升到最大值。 1 分钟后自动停止。在 NGINX Amplify 上,它如下所示: 我不知道。去哪儿挖? ...

Admin

我创建了一个文件描述符并希望在控制台 (stdout) 上输出这个新的 fd - 怎么做?
file-descriptors

我创建了一个文件描述符并希望在控制台 (stdout) 上输出这个新的 fd - 怎么做?

我创建了一个 fd,exec并希望将输出发布到新的 fd3和 stdout 1(在我的情况下是控制台)。我认为连接这个很简单,但找不到正确的语法。 我检查了https://tldp.org/LDP/abs/html/io-redirection.html和https://linuxize.com/post/bash-redirect-stderr-stdout/ 想到了类似的东西:nc -l 4444 1>&3但可以肯定的是,它只是将 stdout 链接到我的第三个 fd。或者更简单echo test 1>&3 那么我怎样才能实现...

Admin

Safari 标签页、NSPOSIXErrorDomain:24 和文件描述符
file-descriptors

Safari 标签页、NSPOSIXErrorDomain:24 和文件描述符

我遇到了文件描述符的严重问题,我已经尝试了所有方法。 我的笔记本电脑:MacBook Pro 13" 2018,带触控条,i5,16 Gb RAM,512SSD。MacOS 11.3.1。 最近 Chrome 开始崩溃,但没有错误。我尝试使用 Safari,但又遇到了另一个问题。当我打开新标签时,出现以下错误:safari 错误截图 NSPosixErrorDomain:24- 错误:“系统中打开的文件过多”。抱歉,截图是俄语的 :) 此外,浏览器(Chrome 和 Safari)中的 javascript 通常非常慢。在某些网站上,UI 滞后且缓慢,但这可...

Admin

设备拔出后如何修复正在运行的进程的打开的文件描述符?
file-descriptors

设备拔出后如何修复正在运行的进程的打开的文件描述符?

我正在运行一个读取/写入我的 nvme 上的文件的进程/nvmedisk/file。 我的 nvme 磁盘由于某种原因出现故障,并且从中消失了,lsblk但被列在了其中lspci。 我手动将其重新绑定echo 0000:0b:00.0 > /sys/bus/pci/drivers/nvme/bind。 /nvmedisk由于它很忙,我无法卸载lsof: process 80452 gospo 234u REG 259,1 411951104 84928 /nvmedisk/file 我卸载umount -...

Admin

rsync + 因文件描述符错误而失败
file-descriptors

rsync + 因文件描述符错误而失败

通常我们不会遇到这个问题,所以这种情况非常罕见! 但是今天我们在复制rsync文件时出现了以下错误。当文件pkg_gh大小为 1-3G时 错误是这样的 Warning: Permanently added '130.33.90.18' (ECDSA) to the list of known hosts. rsync: read errors mapping "/target/home_l/repo/pkg_gh": Bad file descriptor (9) rsync error: some files/attrs were not transfer...

Admin

如何在 Windows 资源管理器中向文件的详细信息页面添加更多信息
file-descriptors

如何在 Windows 资源管理器中向文件的详细信息页面添加更多信息

在我之前的公司,我们使用 GIT,它使用哈希技术进行识别。我记得文件的提交哈希存在于文​​件的详细信息中(在 Windows 资源管理器中打开文件,右键单击,转到“详细信息”选项卡)。 但是,现在我正在使用 SourceSafe,当我查看提到的“详细信息”选项卡时,我看到以下条目(从荷兰语自由翻译): 姓名 类型 小路 尺寸 创建日期 修改日期 特性 (?) 所有者 电脑 因此,除了“属性 (?)”条目之外,我看不到可以写入该信息的任何地方。这可能吗?是否可以使用 SourceSafe 来实现,以及如何实现? ...

Admin

无需重定向或管道即可读取控制台输出
file-descriptors

无需重定向或管道即可读取控制台输出

有没有办法读取命令的控制台输出,而无需重定向或管道传输其 STDOUT/STDERR? 重定向或管道的问题在于,当某些命令的 STDOUT 和/或 STDERR 被重定向时,它们的行为会有所不同,例如颜色或某些格式被删除,或者更相关的差异。旧tput版本需要常规控制台上的 STDOUT 或 STDERR 来读取其尺寸。此外,在管道的情况下,原始命令失去了控制原始 shell 的能力,例如,exit无法从函数内部执行脚本,因为该函数的输出已通过管道传输。 我想要实现的是执行一个命令,以便它直接将其输出打印到控制台,能够终止/退出 shell,但解析/处理并记录...

Admin

“上传”管道就像上传普通文件一样
file-descriptors

“上传”管道就像上传普通文件一样

假设我想将文件打包并压缩,以便上传到 Google Drive 或其他地方,但无需保存中间压缩包(例如,由于磁盘空间不足和/或磁盘是只读的)。借助命名文件描述符和命令替换,这听起来很容易,对吧? exec {foo}< <(tar -c -z $SOME_DIRECTORY) ln -L -s /dev/fd/${foo} ~/foo # "-L" may or may not be necessary here 遗憾的是,这似乎不起作用。当我尝试将此“文件”上传到 Google Drive 时(我还没有在其他地方测试过),它抱怨找不到该文件。...

Admin

计算打开文件数的正确方法是什么
file-descriptors

计算打开文件数的正确方法是什么

验证打开文件的真正方法是什么 我们所做的是 lsof | sort | uniq >/tmp/file 因此/tmp/file包括所有打开的文件 并且可以通过以下方式识别打开文件的数量 wc -l /tmp/file 3259806 /tmp/file 直到现在很酷 但是当我们查看该文件时我们看到 more /tmp/file abrt-dbus 189428 root 1u unix 0xffff883fcd70c380 0t0 61987 socket a...

Admin

如果标题包含冒号 (:),则无法将文件从 Ext4 移动到 exFAT
file-descriptors

如果标题包含冒号 (:),则无法将文件从 Ext4 移动到 exFAT

我有一块 1TB 的 SSD,我将其分成两半,分别分区为 Ext4/exFAT。Ext4 是为了更好地与 Ubuntu 18.04(我的操作系统)进行互操作,而 exFAT 是为了更好地与其他系统进行移植。我安装了 ext4exfat-fuse和exFATexfat-utils是为了与 Ubuntu 兼容。 原文描述: 我尝试将一些 zip 文件解压到 exFAT 分区,但不起作用。这仅有的如果 zip 存档包含 markdown 文件,则会发生这种情况。我的存档包含 mp4 文件和 markdown 文件。以下是示例:我有一个 archive.z...

Admin

“坏文件描述符”,检查磁盘未发现错误
file-descriptors

“坏文件描述符”,检查磁盘未发现错误

我通过 USB 3.0 将两个 .MTS 视频文件从 SD 卡复制到外部驱动器。一个文件没有问题,另一个没有缩略图,尝试访问它时 bsplayer 冻结,即使结束进程也无法终止。单击文件上的属性会导致资源管理器冻结,以至于无法通过结束进程关闭它。现在每次尝试访问此文件时都必须强制重启计算机。也无法删除该文件。 将其重命名为 .avi。Sat VLC 修复了加载时的文件。这导致 VLC 显示以下错误:“文件读取失败:VLC 无法读取文件(文件描述符错误)”。 我通过资源管理器 > 属性 > 工具 > 立即检查来检查磁盘。没有发现任何错误。...

Admin

tcsh 关闭文件描述符
file-descriptors

tcsh 关闭文件描述符

我有一个使用 tcsh 脚本启动的程序。我想通过管道与该进程进行通信(不是父进程创建的管道(称为命名管道)除外。但是,tcsh 似乎会关闭除0-2启动时之外的所有打开的管道。 示例(可能比需要的稍长,问题很快就会显现出来B''): 为了“清晰起见”,我将用 来标识 bash 提示符$,用 来标识 tcsh 提示符%。当进程是 fork 时,我增加字母,并添加'来标记调用exec (3)。 A$ exec 42>42_output.txt # open fd 42 A$ ls /proc/$$/fd 0 1 2 255 3 42 A$ b...

Admin