1.请教windows 进程打开句柄个数的限制的问题
Perl flock()函数
语法
flock FILEHANDLE, OPERATION
定义和使用
支持文件锁定在指定的文件句柄,使用系统的flock(),fcntl()文件锁定,或使用lockf()。确切的实现是依赖于你的系统支持。操作是此处定义的静态值之一。
Operation Result LOCK_SH Set shared lock.
LOCK_EX Set exclusive lock.
LOCK_UN Unlock specified file.
LONG_NB Set lock without blocking.
返回值
0 设置/取消锁定失败时
2.win10开机提示句柄无效
在输入密码的界面,单击电源,长按shift键后点击重启并一直按着shift键。
确认屏幕是否出现“修复”界面,如果有,点击“高级修复选项”。 点击“疑难解答”,点击“高级选项”,点击“启动设置”,点击“重启”。
? 系统重启以后,按“安全模式”所对应的的数字4以进入安全模式。 1、打开Windows自带的“记事本”,粘贴入以下蓝底内容 Windows?Registry?Editor?Version?5。
00 [HKEY_CLASSES_]? @=""%1"?%*" 2、单击“文件”下拉菜单,选择“另存为”,在出来的“另存为”对话框的下部“保存类型”下拉菜单中选中“所有文件”,在上面的“文件名”一栏输入“fix。 reg”(注意中间是半角圆点,而不是句号),保存后转到你文件保存的目录下,双击执行该文件,会提示你“是否确认要将fix。
reg的内容添加进注册表?”,点击“是”,重新启动计算机即可。 另外查杀下病毒。
3.Linux系统的文件句柄数量问题有什么?
在Linux下面部署应用的时候,有时候会遇上Socket/File: Can't open so many files的问题,其实Linux是有文件句柄限制的(就像WinXP?),而且默认不是很高,一般都是1024,作为一台生产服务器,其实很容易就达到这个数量,因此我们需要把这个值改大一些。
大概知道ulimit这个命令是相关的,上Google搜索了一下,大多数说的很含糊,也没有统一说一下,经过两个小时看了不少文章终于弄清楚ulimit相关的一些配置问题。 我们可以用ulimit -a来查看所有限制值,我只关心文件句柄数量的问题 open files (-n) 1024 这个就是限制数量 这里,有很多ulimit的文章都说的很含糊,究竟这个1024是系统的限制,还是用户的限制呢。
其实,这个是用户限制来的,完整的说法,应该是当前用户准备要运行的程序的限制。 1、这个限制是针对单个程序的限制 2、这个限制不会改变之前已经运行了的程序的限制 3、对这个值的修改,退出了当前的shell就会消失 比如说,我先运行了一个程序A,然后通过ulimit修改了限制为2048,然后运行B,然后退出了shell再登录,然后运行C。
那就只有B可以打开2048个句柄。 如果我们需要改变整体的限制值,或者我们运行的程序是系统启动的,应该怎么处理呢 其中一个方法,是想ulimit修改命令放入/etc/profile里面,但是这个做法并不好 正确的做法,应该是修改/etc/security/limits。
conf 里面有很详细的注释,比如 * soft nofile 2048 * hard nofile 32768 就可以将文件句柄限制统一改成软2048,硬32768 这里涉及另外一个问题,什么是软限制,什么是硬限制 硬限制是实际的限制,而软限制,是warnning限制,只会做出warning 其实ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软 默认显示的是软限制,如果修改的时候没有加上的话,就是两个一起改 配置文件最前面的一位是domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制 修改了,重新登录用ulimit一开就立刻生效了,不过之前启动过的程序要重新启动才能使用新的值。 我用的是CentOS,似乎有些系统需要重启才能生效。
ulimit其实就是对单一程序的限制 那系统总限制呢 其实是在这里,/proc/sys/fs/file-max 可以通过cat查看目前的值,echo来立刻修改 另外还有一个,/proc/sys/fs/file-nr 只读,可以看到整个系统目前使用的文件句柄数量 查找文件句柄问题的时候,还有一个很实用的程序lsof 可以很方便看到某个进程开了那些句柄 也可以看到某个文件/目录被什么进程占用了。
4.为什么我在终结ravmond这个进程是电脑提示无法完成操作,句柄?
“句柄无效”有很多种可能:有病毒问题。
有系统问题。有软件问题。
先说我的是情况:只打开360和瑞星才是“句柄无效”,可以知道是个典型的病毒例子。是病毒是有个进程的,我的这个方法是要速度 运气。
好运的话3次就OK,不好运的话就。
要在没有连网的时候进行。
1)关掉其他的软件,为了减少进程,你要看你的进程里有没有可疑的进程,特别是有数字的,并且文件不要隐藏。2)在是病毒话在每个盘都有一样的文件(这个文件是隐藏的),C: D: E: 。
一定要找到这些东西,例如我的是AUTO(名字后面的我忘了)我的总有3个,3)在E:里删了它,再刷新下,又有,接下来就是把可疑进程关掉,再删掉病毒文件,再刷新下,看还有没有这些文件,如果还有的话,再看其他的进程,但注意不要把系统的进程杀掉啊!杀掉系统的进程是会关机的,直到删掉病毒文件,刷新后没有了,就是那个进程。 4)重启,一看到你的桌面,就要杀掉进程(速度要快 !),速度快的话就会看到你刚刚那个进程没了,但是看到有两个CMD的进程(上面说的速度,就是要这样的效果)和很多没看过的进程,把两个CMD进程杀死,如果你手不快的话两个CMD进程就会变成那个你找到的进程,只好再来过。
5)杀掉了那两个CMD进程,你就叫出360,如果你的360还打不开,我就没办法(上面说的速度 运气里的运气就是你中的病毒厉不厉害),打开360就是杀木马和插件(我的就是这个插件弄的了,我重新做系统只杀木马,切没有插件,没想到是插件(我的是灰鸽子变种和不知道是什么名))。 6)在360里的软件管理里的开机启动里把那个进程选禁止启动,这里杀完了就OK,不要去找那些和你杀的进程名一样的文件,那病毒进程名就是系统文件名,为了迷或那些人,我就是这样,删了系统文件,现在很后悔,重新做系统有没光牒。
句柄句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。 但由此而产生的句柄概念也大同小异,比如:>(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括:*。
模块(module)*。 任务(task)*。
实例(instance)*。文件(file)*。
内存块(block of memory)*。菜单(menu)*。
控制(control)*。字体(font)*。
资源(resource),包括图标(icon),光标(cursor),字符串(string)等*。GDI对象(GDI object),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域(region),以及设备描述表(device context)。
WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。在>(南京大学出版社)一书中是这么说的:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。
WINDOWS句柄有点象C语言中的文件句柄。从上面的2个定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。
从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。
在WINDOWS编程中会用到大量的句柄,比如:HINSTANCE(实例句柄),HBITMAP(位图句柄),HDC(设备描述表句柄),HICON(图标句柄)等等,这当中还有一个通用的句柄,就是HANDLE,比如下面的语句:HINSTANCE hInstance;可以改成:HANDLE hInstance;上面的2句语句都是对的。 一个WINDOWS应用程序可以用不同的方法获得一个特定项的句柄。
许多API函数,诸如CreateWindow,GlobalAlloc,OpenFile的返回值都是一个句柄值。另外,WINDOWS也能通过应用程序的引出函数将一个句柄作为参数传送给应用程序,应用程序一旦获得了一个确定项的句柄,便可在WINDOWS环境下的任何地方对这个句柄进行操作。
其实句柄的大量使用已经影响到了每一个WINDOWS的程序设计。句柄只有当唯一的确定了一个项目的时候,它才开始有意义。
句柄对应着项目表中的一项,而只有WINDOWS本身才能直接存取这个表,应用程序只能通过API函数来处理不同的句柄,举个例子来说吧!比如:我们可以为我们的应用程序申请一块内存块,通过调用API函数GlobalAlloc,来返回一个句柄值:hMem=GlobalAlloc(。 。
);其实现在hMem的值只是一个索引值,不是物理地址,应用程序还不能直接存取这块内存。这儿还有一个话外题,就是,一般情况下我们在编程的时候,给应用程序分配的内存都是可以移动的或者是可以丢弃的,这样能使有限的内存资源充分利用,所以,在某一个时候我们分配的那块内存的地址是不确定的,因为他是可以移。
5.如何修改进程的最大文件句柄数目
rez resources是“受控资源文件”,平台无关的(XML格式)的资源文件,是VB/C#使用的资源文件格式。可以存放位图、子串和自定义数据等资源。 对rez文件右键,打开方式,选择程序,钩上始终有选择的程序打开这种文件。
如果无效,打开“文件夹选项”对话框,在文件类型页里,找到rez类型的项,把“打开”操作编辑一下,改为你想用的程序
==========================
没有rez类型的话,在“文件夹选项”对话框“文件类型”页里点“新建”,确定,再选中新建rez类型点“高级”,在新对话框内点“新建”,“操作”写“打开”,浏览到你认为正确的程
6.如何修改进程的最大文件句柄数目
rez resources是“受控资源文件”,平台无关的(XML格式)的资源文件,是VB/C#使用的资源文件格式。
可以存放位图、子串和自定义数据等资源。 对rez文件右键,打开方式,选择程序,钩上始终有选择的程序打开这种文件。
如果无效,打开“文件夹选项”对话框,在文件类型页里,找到rez类型的项,把“打开”操作编辑一下,改为你想用的程序 ========================== 没有rez类型的话,在“文件夹选项”对话框“文件类型”页里点“新建”,确定,再选中新建rez类型点“高级”,在新对话框内点“新建”,“操作”写“打开”,浏览到你认为正确的程。
转载请注明出处windows之家 » win10显示进程句柄数目