问题标签 [system-calls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 当给定受保护的内存时,如何让系统调用调用我的 SIGSEGV 处理程序?
我正在开发一个内存跟踪库,我们使用该库mprotect
来删除对程序大部分内存的访问,并使用 SIGSEGV 处理程序在程序接触到单个页面时恢复对它们的访问。这在大多数情况下都很有效。
read
我的问题是,当程序使用我的库标记为不可访问的内存调用系统调用(比如)时,系统调用只返回 -1 并设置errno
为EFAULT
. 这会以奇怪的方式改变正在测试的程序的行为。我希望能够在系统调用实际进入内核之前恢复对系统调用的每一页内存的访问。
我目前的方法是为每个涉及内存的系统调用创建一个包装器。在将其交给真正的系统调用之前,每个包装器都会触及给它的所有内存。这似乎适用于直接从程序发出的调用,但不适用于 libc 发出的调用(例如,fread
将read
直接调用而不使用我的包装器)。有没有更好的方法?怎么可能得到这种行为?
c++ - 捕获系统调用标准输出而不用 C/C++ 写入文件
我想将系统调用的 std 输出读入 C/C++ 字符串。我可以在不使用临时文件的情况下执行此操作吗?
Perl
C++
java - 如何从java调用c++功能
我有一个主要是 GUI 的 Java 程序,它显示从 c++ 命令行工具写入 xml 文件的数据。现在我想在java程序中添加一个按钮来刷新数据。这意味着我的程序必须调用 c++ 功能。
通过系统调用从java调用程序的最佳方法是什么?c++ 程序将针对 mac os 和 windows 进行编译,并且应始终与 java 程序位于同一目录中。
我想生成一个可执行文件可以将c程序存储在jar中并从我的程序中调用吗?
linux - getpwnam 是否尊重 /etc/nsswitch.conf?
getpwnam 是否尊重 /etc/nsswitch.conf?
getpwnam
状态的联机帮助页
getpwnam() 函数返回一个指向结构的指针,该结构包含与用户名匹配的密码数据库(例如,本地密码文件/etc/passwd、NIS 和LDAP)中记录的断开字段。
这让我相信它应该尊重/etc/nsswitch.conf,迭代为该passwd
行列出的任何条目(...但我有一个错误报告表明它的行为不是那样)。
编辑:我发现了一个3c 联机帮助页,表明它确实尊重它,所以现在的问题是它支持哪些操作系统
ios - 是否可以在 iOS 上进行系统调用?
是否可以进行系统调用,例如正在执行ls -la
,并在您的应用程序中使用结果?
winapi - 浏览器和外部应用程序通信?(Chrome 在 Windows 上的当前 url 和referer?)
外部程序如何与浏览器通信?希望这对其他人有一些用处:我列出了一些我见过或尝试过的选项,但未能成功。如果您知道其他人,请发布它们。
- 如果是 Mac,请使用 AppleScript(信息/解决方案在q.263741,试试这个搜索)
- 为 Firefox ( iMacros ?, q.410411 )、Chrome (?)使用或创建扩展
- 使用WebBrowser 控件来托管 IE 实例(一些技巧在q.1143187)
- 如果您拥有该站点,则可以使用后台 ajax 脚本来完成
我的问题:如何在不修改浏览器的情况下从外部 Windows 应用程序获取当前前台浏览器的(Chrome,特别是)URL 和引荐来源网址?
我尝试使用 User32 的 GetWindowText,它可以获取标题(使用 jNative for Java)。这经常让我猜到服务器。可以编写一个本地代理来将标题映射到 URL,但这需要很多工作。我已经编写了一个 FireFox 扩展来使用这些信息来装配窗口标题,但是它已经过时了,无论如何我现在都需要这个用于 Chrome。我不想在浏览器中添加垃圾,除非广泛有用。也许我可以为 windows 上的 chrome 提交一个类似 applescript 的 api 的功能请求。AHK Window Info 1.7设法在可见/隐藏文本下抓取 URL(但不是引用者),但我不知道如何移植它使用的代码。
(FF/C# 的一些信息在q.990409和这里,一些 IE 信息在q.823755(重定向到q.352236)。在q.1107978没有信息。忽略这个:相关问题:如何使用宏控制 firefox ?如何获取浏览器信息?如何获取当前浏览器URL?如何从外部应用获取chrome的当前URL?)
想法、代码示例、指向潜在相关问题的指针以及我的具体问题的答案都值得赞赏。
memory-management - 当 brk 减少然后再次增加时,Linux 内核是否清除了内存?
我只是想知道用户程序通过 brk 系统调用释放的内存会发生什么,然后又回来了。内核是否将其清除或内容未定义?
我相信内核在通过 brk 新分配页面时会清除它们,但是如果返回该页面,然后再次请求返回,我无法确定是否将它们全部归零。我正在浏览 lxr.linux.no 试图找出答案。我也会看看这篇文章中建议的书。
感谢您的回复。
蒂姆
c - getutent 和 Linux 计时器问题
我在运行以下代码时遇到问题,该代码调用 getutent() 来计算当前登录到系统的用户总数。计时器将每 1 秒调用一次,并将名为“isSigAlrmOccured”的布尔值设置为 true 并退出。主函数通过检查此布尔值来检查是否传递了计时器信号并监控登录用户的数量。不幸的是,定时器信号仅正确传递到主程序两次,之后我没有收到任何进一步的信号。在前两个信号之后,暂停函数调用不会被中断。
输出:
信号发生1次
信号发生 2 次
linux - Linux中多重系统调用的原因
我想知道,在 Linux 中使用 _syscall0 到 _syscall6 来处理不同数量的参数的原因是什么。仅使用 _syscall6 并让调用代码为未使用的参数传入空值是否存在任何安全/性能问题?