问题列表 - 第24111页

lseek/write突然返回-1,errno = 9(错误的文件描述符)

我的应用程序用于lseek()寻找写入数据的所需位置.该文件使用成功打开open()和我的应用程序能够使用lseek()write()大量的时间.

在给定的时间,对于某些用户而且不易重现,lseek()返回-1,其中errno包含9.文件在此之前未关闭且文件句柄(int)未重置.

在此之后,创建另一个文件; open()再好,lseek()write()再次工作.

更糟糕的是,这个用户再次尝试了完整的序列,一切都很顺利.

所以我的问题是,操作系统可以出于某种原因为我关闭文件句柄吗?什么可能导致这个?某种文件索引器或文件扫描程序?

解决这个问题的最佳方法是什么; 这个伪代码是最好的解决方案吗?(别介意代码布局,会为它创建函数)

int fd=open(...);
if (fd>-1) {
  long result = lseek(fd,....);
  if (result == -1 && errno==9) {
      close(fd..); //make sure we try to close nicely
      fd=open(...);

      result = lseek(fd,....);
  }
}
Run Code Online (Sandbox Code Playgroud)

有人遇到类似的事吗?

总结:对于给定的fd,文件搜索和写入工作正常,并且在没有理由的情况下突然返回errno = 9.

c file-io handle seek

5
推荐指数
2
解决办法
2万
查看次数

如何更改UILabel/UIFont的字母间距?

我已经搜索了负载,但找不到答案.

我有一个正常的UILabel,这样定义:

    UILabel *totalColors = [[[UILabel alloc] initWithFrame:CGRectMake(5, 7, 120, 69)] autorelease];
    totalColors.text = [NSString stringWithFormat:@"%d", total];
    totalColors.font = [UIFont fontWithName:@"Arial-BoldMT" size:60];
    totalColors.textColor = [UIColor colorWithRed:221/255.0 green:221/255.0 blue:221/255.0 alpha:1.0];
    totalColors.backgroundColor = [UIColor clearColor];
    [self addSubview:totalColors];
Run Code Online (Sandbox Code Playgroud)

我希望字母之间的水平间距更紧,同时保持字体大小.

有没有办法做到这一点?这应该是一件非常基本的事情.

干杯,安德烈

更新:

所以我被迫这样做:

- (void) drawRect:(CGRect)rect 
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSelectFont (context, "Arial-BoldMT", 60, kCGEncodingMacRoman);
    CGContextSetCharacterSpacing (context, -10);
    CGContextSetTextDrawingMode (context, kCGTextFill);

    CGContextSetRGBFillColor(context, 221/255.0, 221/255.0, 221/255.0, 221/255.0);
    CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
    CGContextSetTextMatrix(context, xform);

    char* result = malloc(17);
    sprintf(result, …
Run Code Online (Sandbox Code Playgroud)

iphone xcode spacing uilabel uifont

38
推荐指数
3
解决办法
5万
查看次数

如何在没有警告消息的情况下多次导入自定义任务?

我正在使用MSBuild Extension Pack(MEP)中的一些自定义任务.我的项目在许多文件中分开.在这些文件中,我使用(在两个/三个文件中两次或三次)导入MEP任务.这样做时我收到警告信息:

...警告MSB4011:"C:\ Program Files\MSBuild\ExtensionPack\MSBuild.ExtensionPack.tasks"无法再次导入.它已经导入"D:...\Tasker.proj(5,3)".这很可能是构建创作错误.此后续导入将被忽略.

有谁知道如何摆脱这个警告信息?请帮忙!

msbuild-task

9
推荐指数
1
解决办法
6840
查看次数

NHibernate和取消实体更改

看来这将是一个普遍的问题,但我不知道解决该问题的最佳方法。我希望能够将一个实体发送到视图,对视图中的实体进行更改,但是如果用户从视图中取消,则可以取消(删除)那些更改。什么是执行此操作的正确方法。

我有两个选择,但我认为应该有其他更好的选择

1)获取一个实体,创建一个克隆,将克隆发送到视图...如果更改被接受,则使用克隆的值更新原始实体

2)将实体发送到视图,如果用户取消,则从NHibernate的缓存中删除该实体,然后从数据库中重新加载它

对于(2),对我来说,问题是,从缓存中删除旧实体后,仍然可以在我的整个项目中引用该旧实体。

编辑:

好的,因此如果我要实现方法(2),则必须采用evict方法。谢谢,我不记得那个细节。但是,引用我的旧逐出实体的视图对象问题使该问题难以解决。我不能只是在引发自定义逐出事件时不自动将视图更新为一个新实体,而不必在每个实体中都有自定义代码来重新绑定。在某些情况下,重新绑定可能并不容易。我可能需要考虑的更多,因为我可能过于复杂了,但此刻,此方法似乎比较棘手。

我怀疑我会被方法(1)所困扰,该方法有其自身的一系列问题,但将等待更长的时间才能看到其他人是否有一些想法。

编辑2:刚发现这个。我认为它几乎涵盖了详细的答案,并且附带了一个出色的演示项目- 使用NHibernate构建桌面待办事项应用程序-http: //msdn.microsoft.com/zh-cn/magazine/ee819139.aspx

除此之外,NHibernate还具有一个Session.Refresh(Object entity)函数,该函数似乎可以解决确切的问题。因此,当一个实体被更改但在保存之前被取消时,我可以调用Session.Refresh从数据库中重新加载它并放弃更改。

.net c# nhibernate entity

5
推荐指数
1
解决办法
2870
查看次数

Flex 4 - 中心弹出窗口

如何在flex 4中居中弹出窗口?

我试过了:

PopUpManager.addPopUp(AlertPopUp,DisplayObject(spark.components.Application), true);
PopUpManager.centerPopUp(AlertPopUp);
Run Code Online (Sandbox Code Playgroud)

但转换Application-> DisplayObject时出现问题.

请帮忙 :)

apache-flex popup

1
推荐指数
1
解决办法
8088
查看次数

为什么新的String(bytes,enc).getBytes(enc)不返回原始字节数组?

我做了以下"模拟":

byte[] b = new byte[256];

for (int i = 0; i < 256; i ++) {
    b[i] = (byte) (i - 128);
}
byte[] transformed = new String(b, "cp1251").getBytes("cp1251");

for (int i = 0; i < b.length; i ++) {
    if (b[i] != transformed[i]) {
        System.out.println("Wrong : " + i);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于cp1251这个输出只有一个错误的字节 - 在位置25.
对于KOI8-R- 所有罚款.
适用于cp1252- 4或5个差异.

这是什么原因以及如何克服这个原因?

我知道在任何编码中将字节数组表示为字符串是错误的,但这是支付提供商协议的要求,所以我没有选择权.

更新:ISO-8859-1作品中代表它,我将它用于byte[]部分和cp1251文本部分,所以问题仍然只是出于好奇

java

17
推荐指数
2
解决办法
4825
查看次数

如何在Python 2.6中获得Python isidentifer()功能?

Python 3有一个名为的字符串方法 str.isidentifier

我怎样才能在Python 2.6中获得类似的功能,而不是重写我自己的正则表达式等等?

python identifier python-2.6 python-3.x

16
推荐指数
2
解决办法
1555
查看次数

没有ActiveRecord模型的Rails控制器?

我正在尝试创建一个不使用ActiveRecord框架的rails web应用程序,因为我没有关系数据库后端.

到目前为止,我设法创建了一个简单的示例应用程序,可以完美地列出,显示和编辑我的记录.

但是,在创建唱片时我遇到了一些问题.

问题是如果模型类不从ActiveRecord :: Base继承,则控制器类的行为方式不同.

从控制器的角度来看,在模型继承自ActiveRecord :: Base的经典活动记录模型模式中,记录的创建似乎遵循以下顺序:

  • controller.new:创建非持久性记录,呈现输入表单
  • controller.create:用用户输入,持久存储,....设置记录.

但是,在模型不是ActiveRecord的情况下,我们得到以下序列:

  • controller.new
  • controller.update

现在当然这有点奇怪,因为我们正在跳过创建方法,所以它会导致一个nil实例错误!

我很确定这种行为是由应该在模型中实现的东西决定的,但是我无法找到什么(可能是因为我是一个绝对的初学者使用rails)

因此,如果这里的任何人都有关于我应该寻找/实施的内容的一些指示,以便解决这种情况并在两种情况下都有相同的行为,我真的很感激.

谢谢,

activerecord controller model ruby-on-rails

2
推荐指数
1
解决办法
1631
查看次数

使用JSON与MVC和MVC2的差异?

我最近开始使用MVC或MVC2更精确.我昨天发现了一个使用JSON填充dropdowlist的教程.我不知道为什么这不适用于MVC2项目,只适用于MVC.任何人都有时间窥视这个网站,也许看看它可能是什么?http://www.dotnetcurry.com/ShowArticle.aspx?ID=466.这就是JSON示例,它的homecontroler和视图代码

我真的想知道为什么

谢谢

asp.net-mvc

1
推荐指数
1
解决办法
1636
查看次数

用于接受数字0到9999的正则表达式

我想要一个正则表达式只接受0-9999

没有空格,没有字母.但是,允许"空白"(空).

c# regex

2
推荐指数
3
解决办法
4846
查看次数