应该不难吧?对?
我目前正在搜索 OpenAFS 代码库以查找 pioctl 的标头定义。我已经把所有的东西都扔了:检查 ctags,搜索 pioctl 的源代码等。我最接近线索的是,有一个包含定义的文件 pioctl_nt.h,除了它是实际上不是我想要的,因为没有一个用户空间代码直接包含它,而且它是特定于 Windows 的。
现在,我不希望您去下载 OpenAFS 代码库并为我找到头文件。不过,我很好奇:当其他一切都失败时,您有什么技巧可以找到所需的头文件?最坏的情况是什么,可能导致代码库中 pioctl 的 grep 实际上没有提出任何看起来像函数定义的东西?
我还应该注意,我可以访问两个已经正确完成的独立用户空间程序,因此理论上我可以对函数进行 O(n) 搜索。但是没有一个头文件弹出给我,而且 n 很大......
编辑:当前问题已解决:pioctl() 是隐式定义的,如下所示:
AFS.xs:2796: error: implicit declaration of function ‘pioctl’
Run Code Online (Sandbox Code Playgroud) 我有一个生成的makefile,然后调用另一个makefile.由于这个makefile调用更多makefile来完成工作,因此它并没有真正改变.因此,它一直认为项目是建立和最新的.
dnetdev11 ~ # make
make: `release' is up to date.
Run Code Online (Sandbox Code Playgroud)
如何强制makefile重建目标?
clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean
build = svn up ~/xxx \
$(clean) \
~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace \
$(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1) \
release:
$(build )
debug:
$(build DEBUG=1)
clean:
$(clean)
install:
cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin
cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib
Run Code Online (Sandbox Code Playgroud)
注意:删除名称以保护无辜者
编辑:最终修正版:
clean = $(MAKE) -f xxx_compile.workspace.mak clean;
build = svn up; \
$(clean) \
./cbp2mak/cbp2mak -C . xxx_compile.workspace; \
$(MAKE) -f xxx_compile.workspace.mak $(1); \
.PHONY: release debug clean …Run Code Online (Sandbox Code Playgroud) 最新的App Engine SDK(1.2.1)具有API调用,用于根据用户帐户的电子邮件地址计算用户帐户的ID.(即使用户稍后更改了地址,ID仍保持不变.)有关信息的唯一,不透明用户ID,请参阅此问题.但是,我有这个API调用的问题.
user_id()适用于登录用户(即从users.get_current_user),但它返回None由users.User()构造函数创建的对象.**什么给出?
例如,使用优秀的App Engine控制台,此代码不起作用.
>>> import google.appengine.api.users
>>> me = google.appengine.api.users.get_current_user()
>>> me
users.User(email='jason.h.smith@gmail.com',_user_id='105261964646342707921')
>>> me.user_id()
'105261964646342707921'
>>> somebody = google.appengine.api.users.User('someone@gmail.com')
>>> somebody
users.User(email='someone@gmail.com')
>>>somebody.user_id()
>>> type(somebody.user_id())
<type 'NoneType'>
Run Code Online (Sandbox Code Playgroud)
我想要一种简单的方法将电子邮件地址转换为用户ID. 我怎样才能提前从Google强制提供此ID; 或者如果不可能,为什么不呢?
感谢Nick Johnson的回答.以下是他的解决方案:
>>> from google.appengine.ext import db
>>> from google.appengine.api import users
>>> class User(db.Model):
... user = db.UserProperty(required=True)
...
>>> def email_to_userid(address):
... """Return a stable user_id string based …Run Code Online (Sandbox Code Playgroud) 我想将一个大的Python函数重构为较小的函数.例如,请考虑以下代码段:
x = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
Run Code Online (Sandbox Code Playgroud)
当然,这是一个微不足道的例子.在实践中,代码更复杂.我的观点是它包含许多必须传递给提取函数的局部范围变量,它们可能如下所示:
def mysum(x1, x2, x3, x4, x5, x6, x7, x8, x9):
x = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
return x
Run Code Online (Sandbox Code Playgroud)
问题是pylint会触发有关太多参数的警告.做以下事情可以避免警告:
def mysum(d):
x1 = d['x1']
x2 = d['x2']
...
x9 = d['x9']
x = x1 + x2 + x3 + x4 + x5 + x6 + x7 …Run Code Online (Sandbox Code Playgroud) 我经营一个梦幻篮球联赛.我的php网站/ sql数据库旨在让运行团队的人通过网站完成所有事情 - 他们可以放弃玩家,玩家自动进入FA池等.
直到大约一周前,一切都运作良好.现在任何时候团队去签署一个玩家,点击"签名"后,他们会得到一个空白的PHP页面.我不知道为什么 - 我没有对任何文件进行调整.它刚刚开始发生.下面是空白PHP页面的代码 - 有人可以帮忙吗?
<?php
$username = "me";
$password = "mypassword";
$database = "mydatabase";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$Team_Offering = $_POST['Team_Name'];
$Fields_Counter = $_POST['counterfields'];
$Roster_Slots = $_POST['rosterslots'];
$Healthy_Roster_Slots = $_POST['healthyrosterslots'];
$Type_Of_Action = $_POST['Action'];
$queryt="SELECT * FROM nuke_ibl_team_info WHERE team_name = '$Team_Offering' ";
$resultt=mysql_query($queryt);
$teamid=mysql_result($resultt,0,"teamid");
$Timestamp = intval(time());
// ADD TEAM TOTAL SALARY FOR THIS YEAR
$querysalary="SELECT * FROM nuke_iblplyr WHERE teamname = '$Team_Offering' AND retired = 0 ";
$results=mysql_query($querysalary);
$num=mysql_numrows($results);
$z=0; …Run Code Online (Sandbox Code Playgroud) 我使用以下代码动态地将列添加到html表:
var tblHeadObj = window.opener.document.getElementById("maintable").tHead;
var j=0;
while(j < fname.length)
{
if(tblHeadObj != null)
{
for(var h = 0; h < tblHeadObj.rows.length; h++)
{
var newTH = window.opener.document.createElement('th');
tblHeadObj.rows[h].appendChild(newTH);
//newTH.innerHTML='[th]row:'+h+'cell:'+(tblHeadObj.rows[h].cells.length-1)
}
}
var tblBodyObj = window.opener.document.getElementById("maintable").tBodies[0];
//for(var i = 0; i < tblBodyObj.rows.length; i++) {
var newCell=tblBodyObj.rows[0].insertCell(-1);
var newCell=tblBodyObj.rows[0].insertCell(-1);
// newCell.innerHTML = (tblBodyObj.rows[0].cells.length - 1)
newCell.innerHTML= fname[j];
j++;
}
Run Code Online (Sandbox Code Playgroud)
现在我想把列作为链接.我怎么能这样做?
谢谢
我想访问原始事件对象,但对象返回undefined ..
$(window).scroll(function(event) {
alert(event.pageX);
});
Run Code Online (Sandbox Code Playgroud)
我只是尝试这个,如果它会工作.这个例子尽可能基本,所以我也可以解决其他事件.
我正在尝试构建几个Windows服务来做不同的事情.例如,我需要Windows服务,它将:
我需要Windows服务的任务是不同的,所以我不喜欢将它们全部集中在一个服务中的想法.
到目前为止我所拥有的是Visual Studio 2008中的一个项目.我已经创建了一个Windows服务,我在OnStart事件上设置了一个计时器(它只是为了测试目的每5秒写一个文本文件).然后我向项目添加了一个安装程序,当我运行InstallUtil.exe时,一切正常.
当我向同一个项目添加第二个Windows服务时,问题就出现了.我再次设置OnStart代码,使用相同的日志信息(略有不同,以便我可以判断哪个服务正在写入日志).使用第二个Windows服务,我在Program.cs中更改了Main事件:
static void Main(string[] args)
{
ServiceBase[] ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
Run Code Online (Sandbox Code Playgroud)
至:
static void Main(string[] args)
{
ServiceBase[] ServicesToRun = new ServiceBase[]
{
new Service1(),
new Service2()
};
ServiceBase.Run(ServicesToRun);
}
Run Code Online (Sandbox Code Playgroud)
此时,没有编译时错误,但Service2服务从不做任何事情......日志记录任务永远不会触发.
我把它缩小到第二个服务没有与之关联的"安装程序"的事实.然后,我尝试按照第一项服务的方式添加安装程序(即,右键单击服务设计器,然后单击"添加安装程序").现在,当我转到ProjectInstaller.cs文件时,那里有另一个serviceInstaller(serviceInstaller2).
现在当我构建项目并尝试安装服务时,我转到"服务"控制面板窗口,我尝试启动Service1,收到以下错误消息:
Windows无法在本地计算机上启动Service1服务.
错误1083:此服务配置为运行的可执行程序未实现该服务.
如果我尝试启动Service2,则会收到相同的错误消息(当然,错误消息标识Service2除外).
为了从一个exe运行两个服务,我有什么遗漏吗?
在ASP.NET MVC中,控制器方法可以被装饰为接受特定的HTTP方法(Get,Post,Get等).在MvcContrib和ASP.NET MVC之间有3个类:"AcceptGet,AcceptPost"和AcceptVerbs.全部三个:"AcceptGet,AcceptPost"和AcceptVerbs做同样的事情.它们指定允许访问操作/方法的http方法.
AcceptGet和AcceptPost在MvcContrib中.虽然AcceptVerbs是Mvc框架的原生.哪个更好用?
AcceptGet/AcceptPost(MvcContrib)
/// <returns></returns>
[AcceptGet]
public ActionResult Profile(string id)
Run Code Online (Sandbox Code Playgroud)
AcceptVerbs(ASP.NET Mvc)
/// <returns></returns>
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditRequest(string id)
Run Code Online (Sandbox Code Playgroud)
可以在此处找到MvcContrib项目的AcceptPost的文档.
它似乎创建了AcceptGet和AcceptPost,以填补ASP.NET Mvc框架早期版本之一的空白.AcceptGet和AcceptPost类提供了强类型的HttpMethod属性.
使用AcceptVerbs发布的ASP.NET MVC采用枚举:
[Flags]
public enum HttpVerbs
{
Delete = 8,
Get = 1,
Head = 0x10,
Post = 2,
Put = 4
}
Run Code Online (Sandbox Code Playgroud)
我的问题是哪一个是更好的实现,AcceptGet/AcceptPost或AcceptVerbs(使用HttpVerbs枚举类型)?