同步阻塞,用户空间的应用程序执行一个系统调用,这意味着应用程序会一直阻塞,直到系统调用完成为止(数据传输完成或者发生错误)。 同步非阻塞,设备以非阻塞形式打开,这意味着 io 操作不会立刻完成,需要应用程序调用多次来等待完成。 同步和异步 1)同步:发出一个调用时,在没有得到结果前,该调用就不返回, ...
分类:
其他好文 时间:
2018-04-16 19:51:40
阅读次数:
162
在学习块设备原理的时候,我最关系块设备的数据流程,从应用程序调用Read或者Write开始,数据在内核中到底是如何流通、处理的呢?然后又如何抵达具体的物理设备的呢?下面对一个带Cache功能的块设备数据流程进行分析。 1、 用户态程序通过open()打开指定的块设备,通过systemcall机制陷入 ...
分类:
系统相关 时间:
2018-03-03 18:11:44
阅读次数:
225
1)、LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 */ 2)、SYN_SENT:客户端通过应用程序调用connect进行ac ...
分类:
其他好文 时间:
2018-02-21 11:39:39
阅读次数:
192
一、现代操作系统的权限分离: 现代操作系统一般都至少分为内核态和用户态。一般应用程序通常运行于用户态,而当应用程序调用系统调用时候会执行内核代码,此时会处于内核态。一般的,应用程序是不能随便进入内核态的而是需要向OS申请,因为内核态拥有更高的权限。所以当程序运行的时候,其实是有两个栈的,一个位于用户 ...
分类:
系统相关 时间:
2018-01-30 12:33:11
阅读次数:
229
一 存储过程 存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。在 ORACLE SERVER上建立存储过程,可以被多个应用程序调用,可以向存储过程传递参数,也可以向存储过程传回参数。 存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有 ...
分类:
数据库 时间:
2018-01-21 10:57:23
阅读次数:
256
有时候我们需要借助java程序打开电脑自带的一些程序,可以直接打开或者借助cmd命令窗口打开一些常用的应用程序。例如: 调用cmd的时候中间的的/c与/k是cm的参数,windows下查看参数说明: ...
分类:
编程语言 时间:
2018-01-05 19:09:50
阅读次数:
218
引用头文件:sql.h、sqlext.h、sqltypes.h 添加库文件:odbc32.lib odbccp32.lib 1.定义环境变量: 由Driver Manager 进行控制,配置环境属性,保存配置好的数据源名称,ODBC版本号,用户IP,用户ID,密码等 2.初始化环境: 应用程序调用S ...
分类:
数据库 时间:
2017-12-13 12:01:22
阅读次数:
249
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之 ...
分类:
编程语言 时间:
2017-11-09 22:44:21
阅读次数:
354
RegOpenKeyEx 返回值 2 x64 系统: 32bit 应用程序调用RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft", 0, KEY_WOW64_64KEY | KEY_READ, &hKey ); 注意 KEY_WOW64_6 ...
分类:
其他好文 时间:
2017-11-08 11:54:49
阅读次数:
111
UIO(Userspace I/O)是运行在用户空间的I/O技术。在Linux系统中,一般的设备驱动都是运行在内核空间,而在用户空间使用应用程序调用即可。而UIO则是将设备驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能。那么,在内核空间UIO要做的事情就变得很简单,分为两种: 为 ...
分类:
其他好文 时间:
2017-11-01 20:27:53
阅读次数:
1671