句柄

day08 文件操作

十年热恋 提交于 2019-11-29 22:11:30
day08 文件操作 今日内容概要 文件操作 ​ 读 ​ 读文本 ​ 读字节 ​ 读的方式 ​ 写 ​ 写文本 ​ 写字节 ​ 光标操作 ​ 文件修改 昨日内容回顾 基础数据类型补充 整型 bit_length 字符串 capitalize title swapcase index find join format center 列表 sort reverse sort(reverse=True) 列表乘法时,每个元素都一样 元组 (10), (10,), () dict:fromkeys方法批量创建键值对,值共用,若可变会有坑 循环删除的坑 列表删除时会自动补位 使用range和当前列表的长度进行删除 复制一个新列表,循环新的删除旧的 字典和集合,循环删除时不能改变字典的大小(长度) 复制一个新的字典或集合,循环新的,删除旧的 二次编码 encode 编码 decode 解码 用什么编码就要用什么解码 今日内容详细 文件操作初识 我们写的程序代码运行过程中的中间数据和最后的结果,都是存储在内存中。当我们终止程序之后,这些数据也都随之消失。 但是很多时候,我们需要将获得的数据存储起来,供以后使用。如果能把内存中的中间数据转移到硬盘中存储,当程序再次运行时就可以调用上次运行的结果。这就涉及到了Python中的文件操作。 文件操作模式 我们常用的文件操作模式总共有九种: r 只读文本

Win32汇编笔记——一些窗口的API函数

别来无恙 提交于 2019-11-29 17:13:21
1.模块的概念 一个模块代表的是一个 运行中 的exe文件或dll文件,用来代表这个文件中所有的代码和资源,用来代表这个文件中所有的代码和资源,磁盘上的文件不是模块,装入内存后运行时就叫做模块。一个应用程序调用其他DLL中的API时,这些DLL文件被装入内存,就产生了不同的模块,为了区分地址空间中的不同模块,每个模块都有惟一的模块句柄来标识。 2.句柄 句柄只是一个数值,它的值对程序来说是没有意义的,它只是Windows用来表示各种资源的编号而已。 由于很多API函数中都要用到程序的模块句柄,以便利用程序中的各种资源, 所以在程序的一开始就先取得模块句柄并存放到一个全局变量中可以省去很多的麻烦,在Win32中,模块句柄在数值上等于程序在内存中装入的起始地址。 注意:模块和句柄的概念。 3.API函数 取模块句柄函数:GetMoudleHandle 使用方法:invoke GetMoudleHandle,pMoudleName lpMoudleName参数是一个指向含有模块名称字符串的指针,可以用这个函数取得程序地址空间中各个模块的句柄,如 szUserDll db 'User32.dll',0 ... invoke GetMoudleHandle,addr szUserDll .if eax mov hUserDllHandle,eax .endif ...

Boost.Asio技术文档

烈酒焚心 提交于 2019-11-29 16:56:41
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0 的软件授权进行发布(见附带的LICENSE_1_0.txt文件或从 http://www.boost.org/LICENSE_1_0.txt ) Boost.Asio 是用于网络和低层IO 编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型. 综述 基本原理 应用程序与外界交互的方式有很多, 可通过文件,网络,串口或控制台.例如在网络通信中,完成独立的IO操作需要很长时间.对应用程序开发者提出了一个挑战. Boost.Asio 提供了管理需长时间运行操作的工具, 但不必涉及到线程的并发模式和显式锁定. Boost.Asio 库使用C++ 来实现,提供如网络编程等常用的操作系统接口. Boost.Asio实现了如下目标: · 可移植性Portability. 库支持一系列的常用系统操作, 具有稳定的跨平台特性. · 可扩展性Scalability. 库可以帮助开发者构建数千并发连接的网络应用程序.asio 库实现的每个系统操作都使用了最具扩展性的机制. · 效率Efficiency. 库支持发散聚合IO(scatter-gather I/O) 等技术,使应用程序尽量少的拷贝数据. · 可以像BSD Sockets

php多线程采集网页的解决办法 curl多线程采集

人走茶凉 提交于 2019-11-29 11:21:58
既然为了学习,那么先来了解下PHP curl函数信息: PHP cURL所有函数列表: https://secure.php.net/manual/zh/ref.curl.php 以下是PHP中cURL多线程相关函数: curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄 curl_multi_close — 关闭一组cURL句柄 curl_multi_exec — 运行当前 cURL 句柄的子连接 curl_multi_getcontent — 如果设置了 CURL OPT_RETURNTRANSFER,则返回获取的输出的文本流 curl_multi_info_read — 获取当前解析的cURL的相关传输信息 curl_multi_init — 返回一个新cURL批处理句柄 curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源 curl_multi_select — 等待所有cURL批处理中的活动连接 curl_multi_setopt — 为 cURL 并行处理设置一个选项 curl_multi_strerror — Return string describing error code 一般来说,想到要用这些函数时,目的显然应该是要同时请求多个URL,而不是一个一个依次请求

在Qt中使用WindowsAPI来控制其他应用程序

雨燕双飞 提交于 2019-11-29 10:05:49
有时候我们可能想要让一些桌面应用程序自动地执行一些操作,但是这类程序又没有提供一些批量操作的方法或者编程接口。这时最容易的办法恐怕就是使用WindowsAPI来模拟鼠标或键盘的动作来操作这类应用程序了。 假设我们想操纵的应用程序是一个上传文件到网络的程序,整个流程是:登录--->选择要上传的文件--->填写文件信息--->上传。原本这个程序一次只能选择一个文件,只能填写一个文件的信息,只能上传一个文件。当文件很多,比如你要上传整个文件夹时,这显然很麻烦。我们可以先将待上传的文件及其文件信息做成一个待上传文件表,然后控制这个程序循环执行上传单一文件时的操作,讲待上传文件表中的文件批量上传。 要实现这些只需在Qt程序的头文件中包含windows.h文件,如果程序中使用了Windows Common Controls[1],那么还需包含commctrl.h这个头文件。 使用windows7+Qt4.7+Mingw+QtCreator。要使用的函数有以下几个: 1.HWND FindWindowExA(HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow);[2] 函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口

epoll详细工作原理

拥有回忆 提交于 2019-11-29 08:06:34
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢? 先简单回顾下如何使用C库封装的3个epoll系统调用吧。 [cpp] view plain copy int epoll_create( int size); int epoll_ctl( int epfd, int op, int fd, struct epoll_event *event); int epoll_wait( int epfd, struct epoll_event *events, int maxevents, int timeout); 使用起来很清晰,首先要调用epoll_create建立一个epoll对象。参数size是内核保证能够正确处理的最大句柄数,多于这个最大数时内核可不保证效果。 epoll_ctl可以操作上面建立的epoll,例如,将刚建立的socket加入到epoll中让其监控,或者把 epoll正在监控的某个socket句柄移出epoll,不再监控它等等。 epoll_wait在调用时,在给定的timeout时间内

python 简单的文件操作

我只是一个虾纸丫 提交于 2019-11-28 19:31:07
1.文件操作: open('文件路径', mode="模式", encoding="编码格式") (mode="模式", encoding="编码格式")这个可以不写 但是默认是 r , 编码格式是utf-8 1. r 读 2. w 写 3. a 追加2. 路径有两种 1. 相对路径, 相对于你当前程序所在的文件夹.(必须掌握) '../' 表示上一层文件夹或者上一层目录,'/'表示进入一个文件或者目录 相对的是当前程序所在的文件夹 2. 绝对路径 1.从磁盘根目录寻找. 2.互联网上的一个绝对路径 1. 读文件(首先要写一个文件,然后就可以把里面的内容读出来),绝对路径. f = open('file_demo/demo',mode='r',encoding='utf-8') r = f.read() # f表示文件句柄 'file_demo/demo'这里表示进入file_demo文件夹,找到demo文件,所以 '/'表示进入一个文件, print(r) f.close() # 关闭句柄(读完后记得要关闭句柄) # 注意:如果关闭句柄了,在读里面的内容会报错 # 解释: 当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。 # 只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。 # 忘记调用close(

MFC常用函数总结

佐手、 提交于 2019-11-28 18:16:56
1、MFC编辑框、静态文本框相关的常用函数 《1》GetDlgItemText(ID ,str) 作用:从对话框中获取文本 第一个参数为要获取的编辑框(或者静态文本框、单选按钮等可以显示内容的控件)的ID,第二个参数为字符串(Cstring 类型)的变量,获取的文本存储在str中。 《2》SetDlgItemText(ID,str) 作用:将字符串显示在控件中 第一个参数为要显示的编辑框(或者静态文本框、单选按钮、组合框等可以显示内容的控件)的ID,第二个参数为字符串(Cstring 类型)的变量,显示的文本存储在str中。如果要显示的变量的类型不是Cstring,则通过Format函数强制转换。 通常还要加一个UpDateData(FALSE)。 《3》UINT nID=GetCheckedRadioButton(IDC1, IDC2); 作用:获取单选框的选项的ID 第一个参数为该组合框中第一个单选按钮的ID,第二个参数为该组合框中最后一个按钮的ID。 《4》CheckRadioButton(IDC1, IDC2, IDC3); 作用:初始化单选按钮 第一个参数为该组合框中第一个单选按钮的ID,第二个参数为该组合框中最后一个按钮的ID,第三个参数为为缺省选项的ID。 《5》m_scrollBar.SetScrollRange(0, 500) ; 作用:设置水平滚动条的取值范围

PHP CURL CURLOPT参数说明(curl_setopt)

删除回忆录丶 提交于 2019-11-28 13:00:06
CURLOPT_RETURNTRANSFER 选项:   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);   如果成功只将结果返回,不自动输出任何内容。   如果失败返回FALSE   curl_setopt($ch, CURLOPT_RETURNTRANSFER,0); 或着不使用这个选项:   如果成功只返回TRUE,自动输出返回的内容。   如果失败返回FALSE    PHP中CURL方法curl_setopt()函数的一些参数 .   bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。   下列选项的值将被作为长整形使用(在option参数中指定): • CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 • CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。 • CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。 • CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条

win32概述

冷暖自知 提交于 2019-11-28 09:36:47
win32基于已有的框架 有意入口函数只有一个 都需要有一个主函数 所有程序的入口都是maincrtstartup tydedef 顾名思义 window是基于c,c++ 又想有自己所特有的数据类型 所以在C,C++的类型基础上做了重定义 1.区别c语言没有顾名思义 2.封装信息 特性 : 1.如果没有讲过 先转定义看类型 2.大写H开头 在win32里面讲句柄 3.LP,P开头在win32里面表示指针 4.windows里面数据类型全都是大写 但同时windows是基于C,C++的数据类型 程序中两种字符集的表现 多字节和宽字节 以及通配字符集 window没有音乐播放 只是安装了一个默认的音乐播放器 学会运用windows编程 编写播放音乐 以上代码如下实现 1 //逻辑部分 显式部分 2 #include<Windows.h> 3 #pragma comment(lib,"Winmm.lib")//库文件 动态库或静态库 4 //windows的入口函数 WinMain 5 int WinMain(_In_ HINSTANCE hInstance,//应用程序使用句柄 6 _In_opt_ HINSTANCE hPrevInstance,//父应用程序实例句柄(现版本为null) 7 _In_ LPSTR lpCmdLine,//命令行参数 8 _In_ int