【linux读取sys调用不会得到EOF】教程文章相关的互联网学习教程文章

如何根据Linux系统调用实现后台处理?【代码】

如何在Linux系统调用方面实现后台处理(例如,在Bash中)? 我的问题的目的是我不明白为什么bash手册说asynchronous commands are invoked in a subshell environment,(如果我是正确的,“aynchronous commands”意味着在后台运行命令),而通过使用strace,我发现父shell进程首先调用clone()来创建一个子shell,它是自身的副本,然后subshel??l调用execve()将subshel??l本身替换为在后台运行的命令. 这就像运行前台进程一样.我没有看到在子...

linux – 在posix_spawn()创建的proc处调用setsid()

这个问题是this question的后续问题. 当posix_spawn()发出bash命令时,我收到消息:bash: no job control in this shell我认为是因为在fork序列中调用了函数setsid(),我不知道在使用posix_spawn()时如何模拟这个操作. 有没有办法为bash进程创建新会话?解决方法:你不能.它不是当前posix_spawn接口的一部分.在http://austingroupbugs.net/view.php?id=1044讨论了添加它并且显然至少有一个实现(QNX)提供POSIX_SPAWN_SETSID作为扩展,但...

linux – 操作系统如何知道要调用哪个设备驱动程序?

我一直在打开和写入/读取文件/设备文件并一直读取操作系统,但从未理解设备驱动程序不可避免地被调用的流程. 例如,当我们写入stdout时,fd = 1.当我写这篇文章时,我明白操作系统会调用已经打开的特定设备文件的设备驱动程序,但我不明白的是我们如何到达设备驱动程序本身. >甚至首先创建设备文件(即stdout)需要什么?安装?内核模块加载?>(后续[1])因此,如果我有一个外围设备,例如连接到我的计算机的单个LED灯,并且已经安装了LED的正...

如何从Linux内核空间添加自定义扩展属性(即从自定义系统调用)【代码】

如何添加扩展属性,如命令行函数setfattr -n user.custom_attrib -v 99 ex1.txt,但是在自定义系统调用中从内核中执行此操作.我看过linux / xattrib.h,我没有运气试图从内核空间设置任何东西.我曾经使用过vfs_setxattr(struct dentry *,const char *,const void *,size_t,int);它重新启动整个VM.最后,我试图将新的整数类型添加为文件的扩展属性,我还需要检索该扩展属性.我需要使用内核空间中允许的函数.解决方法:我能够获得扩展属性:...

linux – PyQt5错误“用不正确的名称调用PyCapsule_GetPointer”【代码】

我刚刚在一个pyenv virtualenv中使用python 3.6.3在OpenSUSE跳跃中构建PyQt5,构建很顺利,但是当我导入时>>> from PyQt5 import QtCore Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: PyCapsule_GetPointer called with incorrect name我可以导入PyQt5,但是我不能使用它下面的模块>>> import PyQt5 >>> PyQt5.QtCore Traceback (most recent call last):File "<stdin>", line 1, in <module>...

linux – 可以ptrace判断x86系统调用是否使用了64位或32位ABI?

我正在尝试使用ptrace跟踪由单独进程生成的所有系统调用,无论是32位(IA-32)还是64位(x86-64).我的跟踪器将在启用了IA-32仿真的64位x86安装上运行,但理想情况下可以跟踪64位和32位应用程序,包括64位应用程序是否分叉并执行32位进程. 问题在于,由于32位和64位系统调用号不同,我需要知道进程是32位还是64位来确定它使用哪个系统调用,即使我有系统调用号.似乎有imperfect methods,比如检查/ proc /< pid> / exec或(作为strace)寄存器st...

linux – 是否可以从应用程序调用Compiz-Fusion插件(ADD Helper)?

我正在计划一个应用程序,该应用程序将使用在Linux上运行的Compiz-Fusion的“ADD Helper”插件.由于我刚刚进入规划阶段,我基本上想知道在应用程序的调用中使用插件是否可行. 理论上,应用程序会显示一个对话框,并使屏幕的其余部分变黑(调用ADD Helper插件时会实现什么). 有没有办法从应用程序中执行ADD Helper插件?解决方法:看看“ADD Helper”插件,它似乎只会使其他窗口变暗,而不是整个屏幕. 在屏幕保护程序启动之前,XScreenSaver会...

linux – 从GNU readline调用较少的应用程序

位支持问题.为此道歉.我有一个与GNU readline链接的应用程序.应用程序可以调用shell命令(类似于使用readline包装器调用tclsh).当我尝试调用Linux less命令时,出现以下错误:暂停(tty输出) 我不是终端问题的专家.我试图谷歌但没有找到答案.有谁知道如何解决这个问题? 谢谢.解决方法:虽然违反直觉,但它可能会停止等待输入(当你可能期望它引用(tty输入)时,一些操作系统和shell会给出Stopped / Suspended(tty输出)).当它在屏幕长度结束...

WinCE和Linux上的ARM调用约定?

WinCE和Linux在ARM上使用相同的调用约定吗?有什么区别? 到目前为止我找到的文件并没有很好地解释.例如,在http://msdn.microsoft.com/en-us/library/ms864497.aspx上,它在一行上显示“Windows CE .NET Compiler”,但在下一行显示“ARM编译器”,在底部显示“CLARM”,并且不清楚它是指相同的编译器还是不同的编译器.这是我到目前为止发现的…… > ARM Calling Sequence Specification(WinCE) – 写得不好的文档> ARM to C calling c...

c – Linux:通过ptrace()执行系统调用【代码】

嘿:)我目前正在为x86 / x64 Linux开发一个memoryhacking-library.我努力的目的是实现某种远程系统调用执行. 这是我的代码,当我尝试执行有效的系统调用时,它只会崩溃其他进程. (我在代码中使用的所有函数都是ptrace的包装器)你可以在这里找到完整的代码:http://code.google.com/p/ethonmem/source/browse/long Debugger::executeSyscall(unsigned long code, std::vector<unsigned long> const& args) const {// Backup registers....

如何从Linux上的Java代码调用C函数【代码】

我正在使用JavaSE-1.6在Suse Linux 11上编写Java程序,我在使用javac时遇到了问题. 我正在关注教程 http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniexamp.html 到目前为止写了以下内容:package com.ctest;class CTest {// Native method declarationnative int testCall();// Load the librarystatic{System.loadLibrary("fpdpReaderLib");}public static void main(String args[]){int retVal;// Create c...

系统调用在linux中的iomapped内存失败.【代码】

我将一些io内存映射到驱动程序中的vmalloced区域.我也使用flag(ioremap_page_range中的PAGE_SHARED)与用户进程共享此区域. 现在我可以将这个共享内存访问到用户空间.我可以写这个记忆.但是,如果我将此内存作为缓冲区传递给系统调用(如recv或send),则调用将因内存不足而失败(内存未映射到用户进程). 但是,我确信我的缓冲区没有任何问题.因此,我共享内存和错误检查系统调用的方式似乎存在一些冲突. 驱动代码:shared_buf = __get_vm_...

在linux lubuntu上调用任何java.nio方法时,面对没有这样的方法异常【代码】

我面临一个让我发疯的问题,我在windows机器上使用netbeans创建了一个java应用程序,它包含一个带有main方法的普通java类,并按如下方式导入java.nio.package testubonto; import java.nio.*; import java.nio.BufferOverflowException; public class Main {public static void main(String[] args) {try{java.nio.file.Path path = java.nio.file.Paths.get(args[0]);System.out.println(path.toString());}catch(Exception ex){Syst...

linux – 没有调用pci_Driver.probe【代码】

我正在开始Linux设备驱动程序开发,用于通过笔记本电脑的PCIe扩展槽连接的PCI设备. 在启动时,一切都很美妙.但是,我正在尝试在线获得基本的Hotplug支持.当我弹出卡片时,我可以看到(在dmesg中)调用正确的移除内容.但是,当重新插入卡时,没有任何反应.如果我手动删除模块,然后插入卡(或在启动后插入卡),那么我可以看到模块的init被调用,但不是探测器.此外,该设备不会出现在lspci输出中. 但是,如果我回声1> / sys / bus / pci / rescan然...

linux – 套接字,TCP状态和写入系统调用【代码】

我一直在使用一个简单的服务器,它每30秒向一个客户端发送一个心跳包,然后通过心跳回复包确认心跳.当我通过发送SIGKILL,SIGSEGV来粗暴地终止服务器时,客户端通过select()和read()系统调用很容易发现它.然后我开始想知道当你在客户端写入其心跳回复数据包之前这样做会发生什么,所以我在客户端代码中放置了20秒的睡眠并且同时杀死了服务器但发现客户端写入仍然成功.紧接着尝试第二次写入会触发预期的SIGPIPE信号并写入返回的EPIPE.据我...