在我的代码中,我需要在2秒后调用sigalrm。但是,当我使用$xmlDoc = (Get-Content $webConfig) -as [Xml]
$root = $xmlDoc.get_DocumentElement();
$handler1 = $xmlDoc.CreateNode('element',"add",'')
$handler1.SetAttribute('name','Telerik_Web_UI_DialogHandler_aspx')
$handler1.SetAttribute('verb','*')
$handler1.SetAttribute('preCondition','integratedMode')
$handler1.SetAttribute('path','Telerik.Web.UI.DialogHandler.aspx')
$handler1.SetAttribute('type','Telerik.Web.UI.DialogHandler')
$root.'system.webServer'.handlers.AppendChild($handler1);
时,它不起作用。使用ualarm(2000000, 0 )
不到1秒的作品。而ualarm
起作用。是否有理由在alarm(2)
之后有时使用ualarm
?有没有办法让alarm
工作超过1秒?
答案 0 :(得分:3)
ualarm()
已过时,实际上已从POSIX中删除。不要使用它。
如果你仍然坚持使用它,它的Linux手册页指出:
类型useconds_t是一个无符号整数类型,能够保存[0,1000000]范围内的整数。
,我猜这是对一次性POSIX规范的引用。你应该从中得到的是POSIX ualarm()
永远不能保证能够处理大于1000000的第一个参数。它不清楚是否有任何实现处理更大的值,但POSIX指定的事实它确实表明至少有一些实现没有。
有没有办法让ualarm工作超过1秒钟?
由于ualarm()
没有(不再)任何标准,答案必然依赖于实现。根据您提供的内容,我倾向于认为通过您的实施,答案是" no"。