LD_PRELOAD,是Linux系统的一个环境变量,用于动态库的加载,动态库加载的优先级最高。它可以影响程序的运行时的链接,它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态 ...
分类:
其他好文 时间:
2020-05-07 22:53:50
阅读次数:
99
许多系统在首次使用文件时,使用系统调用 open,将文件属性(包括文件在外存的物理位置)从外存拷贝到内存打开文件目录中的一个表目中,并 将该表目的编号返回给用户,当用户操作文件时候,可通过该编号(索引)进行操作。 ...
分类:
其他好文 时间:
2020-05-06 21:32:23
阅读次数:
77
第三章习题 1,当读/写磁盘时,本章中的确定时不带缓冲的IO吗? 答:是 带缓冲IO:用户缓冲区-内核缓冲区-磁盘 不带缓冲IO:内核缓冲区-磁盘 不带缓冲IO的话就每次都要系统调用后才能到内核缓冲区,时间开销大 2,编写一个和3.12一样dup2一样功能的程序,要求不调用fcntl,并且有正确的出 ...
分类:
其他好文 时间:
2020-05-04 15:43:59
阅读次数:
82
模拟硬件的虚拟机 此类虚拟机的用户是操作系统,也就是硬件层虚拟机抽象出了一个计算机硬件体系,此类虚拟机模拟的是cpu指令集。 典型有kvm,vmware等。 模拟操作系统的虚拟机 此类虚拟机模拟的是操作系统,准确来说是操作系统的系统调用接口。此类虚拟机(多是基于宿主操作系统提供的功能)能创建多个虚拟 ...
分类:
其他好文 时间:
2020-05-04 15:30:08
阅读次数:
71
一、了解Unix网络编程5种I/O模型 1.1、阻塞式I/O模型 阻塞I/O(blocking I/O)模型,进程调用recvfrom,其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误才返回。进程从调用recvfrom开始到它返回的整段时间内是被阻塞的。 1.2、非阻塞式I/O模型 ...
分类:
编程语言 时间:
2020-05-02 22:53:19
阅读次数:
81
相关知识: 1、有名管道 一个可以在文件系统中长期存在的、具有路径名的文件。用系统调用mknod( )建立。它克服无名管道使用上的局限性,可让更多的进程也能利用管道进行通信。因而其它进程可以知道它的存在,并能利用路径名来访问该文件。对有名管道的访问方式与访问其他文件一样,需先用open( )打开。 ...
分类:
系统相关 时间:
2020-05-02 15:16:29
阅读次数:
102
相关知识: 1、kill( ) 系统调用格式 int kill(pid,sig) 参数定义 int pid,sig; 其中,pid是一个或一组进程的标识符,参数sig是要发送的软中断信号。 (1)pid>0时,核心将信号发送给进程pid。 (2)pid=0时,核心将信号发送给与发送进程同组的所有进程 ...
分类:
系统相关 时间:
2020-05-02 13:28:58
阅读次数:
119
下面代码是alt与cotrol互换,CapsLock改为Control。 目录中创建 文件把下面的代码填进去 然后在终端输入 就可以了 原理讲解 键盘某个键位按下去之后会向Linux系统发送一个code,该code是不可更改的。 linux系统输入一个字符,比如a,是系统调用某个函数实现的。 键盘的 ...
分类:
系统相关 时间:
2020-05-02 00:34:46
阅读次数:
156
在项目开发过程中,有这样的一种常见的场景,比如根据环境的不同,发短信的服务也是不同的,但是依赖短信服务的系统调用的都是相同的接口,这样就需要针对环境来做区分,调用不同的短信通道接口。举例的这种情况,你可能会想到使用策略模式的方式来实现,当然这也是可以的。 但是只有两种策略而且在一个环境当中, 只会有 ...
分类:
编程语言 时间:
2020-05-01 12:49:35
阅读次数:
85
慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证。 EINTR错误的产生:当阻塞于某个慢系统调用的一个进程捕获 ...
分类:
其他好文 时间:
2020-05-01 01:12:10
阅读次数:
82