句柄

python基础 文件操作

旧时模样 提交于 2019-12-03 21:27:04
文件操作1 1 #文件操作流程:1、打开文件,得到一个文件句柄;通过文件句柄操作文件;关闭文件。 2 #将文件打开文件赋给file1,test_file为文件名,utf-8为文件编码;file1是文件的全量内容 3 data1 = open("test_file",encoding="utf-8").read() 4 print(data1) 5 #打开文件,获取文件句柄file2,后续通过file2这个文件句柄对文件进行各种操作方法,默认文件以只读模式打开,只读时不能对文件进行写操作 6 file2 = open("test_file","r",encoding="utf-8") 7 #一次将文件内容全部读取 8 date2 = file2.read() 9 #"w"是以写模式打开文件,此模式会先清空文件内容,此时不能对文件进行读操作 10 file3 = open("test_file3","w",encoding="utf-8") 11 file3.write("file3 文件写\n") 12 #"a"是文件追加写模式,此时从文件末尾追加往后面写 13 file4 = open("test_file","a",encoding="utf-8") 14 file4.write("file4 文件追加写") 15 #逐行读文件,readline()或直接对文件句柄进行迭代 16

C++ nullptr

南楼画角 提交于 2019-12-03 18:57:39
nullptr 关键字表示空指针值。 空指针值可用于指明对象句柄、内部指针或本机指针类型不指向对象。 结合使用 nullptr 与托管代码或本机代码。 编译器为托管空指针值和本机空指针值发出相应但不同的指令。 若要了解如何使用此关键字的 ISO 标准 C++ 版本,请参阅 nullptr 。 __nullptr 是 Microsoft 专用关键字,虽然与 nullptr 的含义相同,但仅适用于本机代码。 如果你将 nullptr 与本机 C/C++ 代码结合使用,然后使用 /clr 编译器选项进行编译,那么编译器便无法确定 nullptr 指明的是本机空指针值,还是托管空指针值。 若要向编译器明确表达你的意图,请使用 nullptr 来指定托管值,或使用 __nullptr 来指定本机值。 nullptr 关键字相当于 Visual Basic 中的“无”和 C# 中的“null”。 Nullptr 中也定义关键字C++适用于 CLI 的托管代码应用程序和与 ISO 标准不可互换C++关键字。 如果你的代码可能会通过编译 /clr 编译器选项,以托管的代码为目标,然后使用 __nullptr 代码,必须保证编译器使用本机 C++ 解释的任何行中。 有关详细信息,请参阅 nullptr 。 避免使用 NULL 或零 ( 0 ) 为 null 指针常量; nullptr 是不易被误用

无头浏览器 Puppeteer 初探

陌路散爱 提交于 2019-12-03 07:32:55
本文转载于: 猿2048 网站⇨ https://www.mk2048.com/blog/blog.php?id=h22a2ijbaa 作者简介 felix 蚂蚁金服·数据体验技术团队 我们日常使用浏览器的步骤为:启动浏览器、打开一个网页、进行交互。而 无头浏览器 指的是我们使用脚本来执行以上过程的浏览器,能模拟真实的浏览器使用场景。 有了无头浏览器,我们就能做包括但不限于以下事情: 对网页进行截图保存为图片或 pdf 抓取单页应用(SPA)执行并渲染(解决传统 HTTP 爬虫抓取单页应用难以处理异步请求的问题) 做表单的自动提交、UI的自动化测试、模拟键盘输入等 用浏览器自带的一些调试工具和性能分析工具帮助我们分析问题 在最新的无头浏览器环境里做测试、使用最新浏览器特性 写爬虫做你想做的事情~ 无头浏览器很多,包括但不限于: PhantomJS, 基于 Webkit SlimerJS, 基于 Gecko HtmlUnit, 基于 Rhnio TrifleJS, 基于 Trident Splash, 基于 Webkit 本文主要介绍 Google 提供的无头浏览器(headless Chrome), 他基于 Chrome DevTools protocol 提供了不少高度封装的接口方便我们控制浏览器。 简单的代码示例 为了能使用 async / await 等新特性,需要使用 v7

聊聊C10K问题及解决方案

*爱你&永不变心* 提交于 2019-12-03 07:04:30
#0 系列目录# 聊聊远程通信 Java远程通讯技术及原理分析 聊聊Socket、TCP/IP、HTTP、FTP及网络编程 RMI原理及实现 RPC原理及实现 轻量级分布式 RPC 框架 使用 RMI + ZooKeeper 实现远程调用框架 深入浅出SOA思想 微服务、SOA 和 API对比与分析 聊聊同步、异步、阻塞与非阻塞 聊聊Linux 五种IO模型 聊聊IO多路复用之select、poll、epoll详解 聊聊C10K问题及解决方案 #1 C10K问题# 大家都知道 互联网的基础就是网络通信 ,早期的互联网可以说是一个小群体的集合。互联网还不够普及,用户也不多。一台服务器同时在线100个用户估计在当时已经算是大型应用了。所以并不存在什么C10K的难题。互联网的爆发期应该是在www网站,浏览器,雅虎出现后。最早的互联网称之为Web1.0,互联网大部分的使用场景是下载一个Html页面,用户在浏览器中查看网页上的信息。这个时期也不存在C10K问题。 Web2.0时代到来后就不同了,一方面是普及率大大提高了,用户群体几何倍增长。另一方面是互联网不再是单纯的浏览万维网网页,逐渐开始进行交互,而且应用程序的逻辑也变的更复杂,从简单的表单提交,到即时通信和在线实时互动。C10K的问题才体现出来了。 每一个用户都必须与服务器保持TCP连接才能进行实时的数据交互

管道通信——FIFO的代码实现

帅比萌擦擦* 提交于 2019-12-03 03:02:32
一、用到的函数 umask linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。 文件的访问允许权限共有9种,分别是:r w x r w x r w x(它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行) 其实这个函数的作用,就是设置允许当前进程创建文件或者目录最大可操作的权限,比如这里设置为0,它的意思就是0取反再创建文件时权限相与,也就是:(~0) & mode 等于八进制的值0777 & mode了,这样就是给后面的代码调用函数mkdir给出最大的权限,避免了创建目录或文件的权限不确定性 第一位代表了一项特别的安全特性,叫作粘着位(sticky bit),后面的3位表示文件或目录对应的umask八进制值。要理解umask是怎么工作的,得先理解八进制模式的安全性设置。 八进制模式的安全性设置先获取这3个rwx权限的值,然后将其转换成3位二进制值,用一个八进制值来表示。在这个二进制表示中,每个位置代表一个二进制位。因此,如果读权限是唯一置位的权限,权限值就是r--,转换成二进制值就是100,代表的八进制值是4。下表列出了可 能会遇到的组合。 原文链接: https://blog.csdn.net/qq_32767041/article/details/81191866 S_IFIFO|0666

matlab图形句柄属性总结

萝らか妹 提交于 2019-12-03 02:20:57
这两天在看句柄式图形方面的东西,以下是我在看书过程中整理的 学习 笔记,比较详细的介绍了句柄以及与其密切相关的各种图形对象和它们的属性。希望能对初学Matlab界面设计的朋友们有所帮助。 GUI学习笔记: 句柄式图形常用函数: (1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值 (2)a = get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。 (3)a = get(0,'factory')返回所有能由用户设置的属性的默认定义值。 (4)a = get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...)返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。 a = get(0,'factoryFigureColor')返回Figure对象的Color属性值。 (5)a = get(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName1',...)返回句柄值为h的对象指定属性的默认值。如

HWND Handle HModule区别

六眼飞鱼酱① 提交于 2019-12-03 01:39:58
HWND是线程相关的,你可以通过HWND找到该窗口所属进程和线程 Handle 是代表系统的内核对象,如文件句柄,线程句柄,进程句柄。 系统对内核对象以链表的形式进行管理,载入到内存中的每一个内 核对象都有一个线性地址,同时相对系统来说,在串列中有一个索引位置,这个索引位置就是内核对象的handle。 HINSTANCE的本质是模块基地址,他仅仅在同一进程中才有意义,跨进程的HINSTANCE是没有意义 HMODULE 是代表应用程序载入的模块,win32系统下通常是被载入模块的线性地址。 HINSTANCE 在win32下与HMODULE是相同的东西(只有在16位windows上,二者有所不同). ———————————————— 版权声明:本文为CSDN博主「一蓑烟雨1989」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wangshubo1989/article/details/53203718 来源: https://www.cnblogs.com/maweiwei/p/11769577.html

select

匿名 (未验证) 提交于 2019-12-03 00:32:02
select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。 文件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file descrīptor for the new socket is returned.”而man 2 open可以看到“open() and creat() return the new file descrīptor”,其实文件句柄就是一个整数,看socket函数的声明就明白了: int socket(int domain, int type, int protocol); 当然,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、stdout、stderr,0就是stdin,1就是stdout,2就是stderr。 比如下面这两段代码都是从标准输入读入9个字节字符: #include <stdio.h> #include <unistd.h> #include <string.h> int main(int argc, char

c++ oci函数的基本使用

匿名 (未验证) 提交于 2019-12-03 00:22:01
oci函数的基本使用 ORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。 #引入库: #include <oci .h > #定义变量: OCIEnv *envhp; //环境句柄 OCIError *errhp; //错误句柄 OCIServer *srvhp; //服务器句柄 OCISvcCtx *svchp; //服务环境句柄 OCIStmt *stmthp; //语句句柄 #C ++调用oci连接数据库步骤: OCIEnvCreate() :创建环境句柄,使用方式如下: OCIEnvCreate(&envhp,OCI_DEFAULT,(dvoid*) 0,NULL,NULL,NULL,0,(dvoid**)0); OCIHandleAlloc() :根据环境句柄分配相关句柄资源: OCIHandleAlloc((dvoid*) envhp,(dvoid**)&errhp,OCI_HTYPE_ERROR,(size_t)0,(dvoid**)0); //分配错误句柄 OCIHandleAlloc((dvoid*) envhp,(dvoid**)&srvhp,OCI_HTYPE_SERVER,(size_t)0