文件句柄

FREERTOS队列

匿名 (未验证) 提交于 2019-12-03 00:21:02
http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息队 消息队列的概念及其作用 消息队列就是通过 RTOS 内核提供的服务,任务或中断服务子程序可以将一个消息( 注意,FreeRTOS 消息队列传递的是实际数据,并不是数据地址,RTX,uCOS-II 和 uCOS-III 是传递的地址 )放入到队列。 同样,一个或者多个任务可以通过 RTOS 内核服务从队列中得到消息。通常,先进入消息队列的消息先传 给任务,也就是说,任务先得到的是最先进入到消息队列的消息,即先进先出的原则(FIFO),FreeRTOS 的消息队列支持 FIFO 和 LIFO 两种数据存取方式。 也许有不理解的初学者会问采用消息队列多麻烦,搞个全局数组不是更简单,其实不然。在裸机编程 时,使用全局数组的确比较方便,但是在加上 RTOS 后就是另一种情况了。 相比消息队列,使用全局数组 使用消息队列可以让 RTOS 内核有效地管理任务,而全局数组是无法做到的,任务的超时等机制需要用户自己去实现。 使用了全局数组就要防止多任务的访问冲突,而使用消息队列则处理好了这个问题,用户无需担心。 使用消息队列可以有效地解决中断服务程序与任务之间消息传递的问题。 FIFO 机制更有利于数据的处理。 FreeRTOS

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

匿名 (未验证) 提交于 2019-12-03 00:06:01
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 ...

python文件操作

匿名 (未验证) 提交于 2019-12-02 22:56:40
1.дģʽ 2.只读模式 3.追加模式 4.概念:句柄 open(), 5.文件关闭close(),数据由缓冲期进入磁盘 6.要有指针的概念,针对一个句柄,操作的时候注意光标的位置。 7.readlines()读取的出列表的形式,打开之后存在内存中 8.可以抽离出文件内容,然后关闭文件,在列表操作,避免在内存中操作 9.对于字符串拼接常用join()函数 10.文件追加内容,读取到另一个文件中 实例: # coding=GBK a=open(‘file1‘,‘r+‘) #已存在的文件file1 b=open(‘file2‘,‘w‘) num=0 for i in a.readlines(): num +=1 if num==7: i=‘‘.join([i.strip(),‘like\n‘]) b.write(i.strip()+"\n") b.flush() #即时保存在磁盘中 a.close() b.close() 原文:https://www.cnblogs.com/duguxiren/p/9348193.html

Linux中多路串口Select监听方式

匿名 (未验证) 提交于 2019-12-02 21:56:30
申明:本文转自链接:https://www.jianshu.com/p/a293869bbdb8 串口读函数read是阻塞函数,多路串口接收不太好处理,如果每路串口使用单独的线程接收浪费资源,使用select()函数监听多路串口数据可以把所有接收的数据在一个线程中处理,类似QT中的槽函数功能。 1、函数原型介绍:    int select( int nfds, fd_set *rdfds, fd_set *wtfds, fd_set *exfds, struct timeval *timeout) 入口参数: ①:ndfs:select() 中监视的文件句柄,一般设为要监视的文件中的最大文件号加一。 ②:rdfds:select()监视的可读文件句柄集合,当rdfds映象的文件句柄状态变成可读时系统告诉select函数返回。这个集合中有一个文件可读,select就会返回一个大于0的值,表示有文件可读,如果没有可读的文件,则根据timeout参数再判断是否超时,若超出timeout的时间,select返回0,若发生错误返回负值,可以传入NULL值,表示不关心任何文件的读变化; ③:wtfds: select()监视的可写文件句柄集合,当wtfds映象的文件句柄状态变成可写时系统告诉select函数返回。 如果这个集合中有一个文件可写,select就会返回一个大于0的值

Too many open files问题解决

风格不统一 提交于 2019-12-02 18:25:26
问题描述:java工程,启动tomcat后发现catalina.out启动日志 报错“Too many open files” 原因:句柄数超出系统限制。 句柄含义:不单是文件,也包括打开的通讯链接(比如socket),正在监听的端口等等 解决:ulimit -a 可以查看当前系统设置的最大句柄数是多少,如下图 open files即是最大句柄数设置 查看全部进程占用句柄数:lsof|awk '{print $2}'|wc -l 查看某一个进程占用句柄数: ls -l /proc/pid(例如10124)/fd/ | wc -l 如果超过最大句柄数设置,则设置最大句柄数即可,命令如下 ulimit –n 65535 设置最大句柄数是65535 可以再次输入ulimit -a 查看确认是否生效,如下图 生效,解决! 来源: https://www.cnblogs.com/wanghongsen/p/11757634.html

jvm体系结构

不羁岁月 提交于 2019-12-02 13:36:26
JVM 位置 jvm体系结构图 类装载器ClassLoader ​ 负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定 类装载器ClassLoader分类 虚拟机自带的加载器 启动类加载器(Bootstrap)C++ 扩展类加载器(Extension)Java 应用程序类加载器(AppClassLoader)Java 也叫系统类加载器,加载当前应用的classpath的所有类 用户自定义加载器 Java.lang.ClassLoader的子类,用户可以定制类的加载方式 Execution Engine 执行引擎负责解释命令,提交操作系统执行 Native Interface 本地接口 本地接口的作用是融合不同的编程语言为 Java 所用 Native Method Stack 它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。 PC 寄存器 ​ 每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。 方法区

Linux下tomcat报错“java.net.SocketException: Too ma...

匆匆过客 提交于 2019-12-02 08:01:39
部署到linux下的tomcat,今天发现包了“java.net.SocketException: Too many open files”,以前从来没有遇到过,在此记录一下: 彻底解决问题的是 第三步 , 所以,可以直接跳到第三步去看解决方法和步骤,当日第一、第二步是我不断探索,尝试解决问题的过程,虽然没有找到点上,但是还是有些意义的,因为linux切实有打开资源数量的限制,肯定需要修改的。 异常信息: ............ Oct 17, 2011 5:22:41 PM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:375) at java.net.ServerSocket.implAccept(ServerSocket.java:470) at java.net.ServerSocket.accept

html5 拖放

亡梦爱人 提交于 2019-12-02 06:22:07
传送门 需注意的知识点: 1.链接和图片默认是可以拖放的,不用设置dragable='true',如要拖动div则需要设置 2.在目标元素上定义一个dragover事件,然后在事件句柄中使用event.preventDefault()来阻止默认行为,从而允许拖放 3.在目标元素上定义一个drop事件,然后在事件句柄中使用event.preventDefault()来阻止默认行为,防止在新窗口中打开 4.传输数据使用event.dataTransfer对象,该对象最常用的有两个方法: getData() 和 setData()。两个方法的第一个参数都是数据类型,为了保持和IE兼容,最好使用text和URL两种 5.当拖放的是文件时,可通过event.dataTransfer.files来访问相应的文件 更多专业前端知识,请上 【猿2048】www.mk2048.com 来源: https://blog.csdn.net/qq_45670012/article/details/102729192

文件操作

帅比萌擦擦* 提交于 2019-12-02 02:14:43
文件操作 利用python操作文件的几个参数 文件路径:path 打开方式:mode(r(读),w(写),a(追加),读写,写读) 编码方式:utf-8 ,gbk,gb2312.... open open 内置函数,open底层调用的是操作系统的接口 f1,变量. (f1,fh,file,file_handler,f_h) 文件句柄.通过对文件的任何操作都会通过文件句柄. 的方式. encoding:可以不写,不写参数,默认编码本.默认编码本:操作系统的默认的编码 ****文件句柄****是一个迭代器 windows:gbk linux:utf -8 mac: ust -8 f.close (关闭文件) open操作文件的三步 1. 打开文件 2. 对文件句柄的操作 3. 关闭文件 报错处理 1. unicodeDecodeError 错误,编译错误 2. 路径分隔符产生异议: 路径前面加r 文件的读操作(表示要对文件进行读操作) r,rb(bytes模式读),r+(读写),r+b...四种模式 - r - read() 全部读取出来 - read(n) 读取n个字符 - readline() 读取一行 - readlines() 返回一个列表,列表中的每个元素是原文件的每一行 - for i in f. - rb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)

Unity中调用Windows窗口句柄以及根据需求对其设置

为君一笑 提交于 2019-12-01 04:35:36
问题背景: 现在在搞PC端应用开发,我们开发中需要调用系统的窗口以及需要最大化最小化,缩放窗口拖拽窗口,以及设置窗口位置,去边框等功能 解决根据: 使用user32.dll解决 具体功能: Unity中对Windows窗口设置 <1>.unity中调用打开文件窗口和保存窗口: 调用Comdlg32.dll中方法 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Runtime.InteropServices; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace Tx3d.Ventilation 9 { 10 /// <summary> 11 /// 场景窗口类型基类 12 /// </summary> 13 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] 14 public class SceneWindows 15 { 16 public int structSize = 0; 17 public IntPtr dlgOwner = IntPtr.Zero; 18 public IntPtr