小编Feu*_*mel的帖子

OS X 是否支持 POSIX 会话?

我工作的一个项目,该项目可以充分利用POSIX的会话(如描述在这里),但现在我不确定我是否误解OS X甚至支持和/或是否处理会话的概念。

OS X 10.9 有一个setsid(2)系统调用,但用参数调用它0, 0似乎没有注意到。查看ps -e -o pid,pgid,sess显示的输出,所有进程的会话 ID 为0

  PID  PGID   SESS
     1     1      0
    11    11      0
    12    12      0
    13    13      0
    14    14      0
    15    15      0
    16    16      0
    17    17      0
[...]
Run Code Online (Sandbox Code Playgroud)

OS X 是否支持进程的 POSIX 会话,如果不支持,是否存在另一种机制,例如 shell 可以用来向从该 shell 启动的所有进程发送信号?


除了查看系统上的活动进程外,我还使用ersatz-setsid命令行工具在新会话中运行进程,但没有成功:

$ ./setsid sleep 1000
$ ps -eo pid,pgid,sess,command
  PID  PGID   SESS COMMAND
[...]
10650 10650      0 sleep 1000 …
Run Code Online (Sandbox Code Playgroud)

macos posix process

4
推荐指数
2
解决办法
533
查看次数

保证局部变量中引用的生命周期

Swift中,我可以使用ARC机制来管理进程外部资源的生命周期,因为类的实例可以预先解除初始化.这与Java Runtime之类的环境形成对比,在Java Runtime中,当垃圾收集器收集对象时,实例被去初始化,这不能保证在定义的时间窗口中发生.

但是,当局部变量引用这些实例时,Swift语言和运行时对实例生命周期的确切保证是什么?例如,当局部变量持有对它的唯一引用时,实例可能被解除分配的最早点是什么?

在下面的示例中,我创建了一个类的实例,并在局部变量中存储对它的引用.

public final class Something {
    init() { print("something.init()") }
    deinit { print("something.deinit()") }
}

func useSomething() {
    let something = Something()
    print("useSomething()")
}

useSomething()
Run Code Online (Sandbox Code Playgroud)

在我打印的点之后不使用该变量,useSomething()调用之后deinit运行一致:print()

$ swift run -c release
something.init()
useSomething()
something.deinit()
Run Code Online (Sandbox Code Playgroud)

似乎引用总是在变量超出范围时递减.在do块中包装变量声明会更改顺序:

func useSomething() {
    do { let something = Something() }
    print("useSomething()")
}
Run Code Online (Sandbox Code Playgroud)

$ swift run -c release
something.init()
something.deinit()
useSomething()
Run Code Online (Sandbox Code Playgroud)

这个订单是保证还是可以用不同的编译器或优化级别更改?


我对此感兴趣的原因是我想在面向对象的Swift API中包装C API,并希望使用Swift类和引用计数自动管理使用C API分配的资源的生命周期.如果C …

class automatic-ref-counting swift

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

scala 中是否保证了参数评估顺序?

我知道它保证在 Java 中从左到右执行,但是 Scala 怎么样?我有一个接受数组和可读字节限制的方法:

def scanArray(limit: Int, ba: Array[Byte]) = { }
Run Code Online (Sandbox Code Playgroud)

我还有一个方法,它接受一个数组,用一些数据填充它并返回它填充的字节数:

def fillArray(ba: Array[Byte]): Int = {...}
Run Code Online (Sandbox Code Playgroud)

问题是这样调用是否可以scanArray

val ba = new Array[Byte](16)
scanArray(fillArray(ba), ba)
Run Code Online (Sandbox Code Playgroud)

行为有保障吗?还是 Scala 规范不保证?

scala function parameter-passing

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

BeautifulSoup - 摆脱段落空白/换行符

similarlist = res.find_all_next("div", class_="result-wrapper")
for item in similarlist:
    print(item)
Run Code Online (Sandbox Code Playgroud)

这将返回:

<div class="result-wrapper">
<div class="row-fluid result-row">
<div class="span6 result-left">
<p>
<a class="tooltipLink warn-cs" data-original-title="Listen" href="..." rel="tooltip"><i class="..."></i></a>
<a class="muted-link" href="/dictionary/german-english/aa-machen">Aa <b>machen</b></a>
</p>
</div>   
<div class="span6 result-right row-fluid">
<span class="span9">
<a class="muted-link" href="/dictionary/english-german/do-a-poo">to do a poo</a>, <a class="muted-link" href="/dictionary/english-german/pooh">to pooh</a>
</span>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我选择打印时item.get_text(),我得到

abgeneigt machen
to disincline




abhängig machen
2137

to predicate




Absenker machen
to layer
Run Code Online (Sandbox Code Playgroud)

所以基本上我不需要的列表项之间有很多新行。这是因为<p>标签吗?我该如何摆脱它们?

python beautifulsoup

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

Scala数字类型的隐式转换是否特殊?

我已经定义了一个隐式类,它为foo所有实例提供了一个方法Double.奇怪的是,现在也可以在Float实例上调用此方法,这由scalac2.12.5(使用-Xscript Foo)接受的以下示例显示:

implicit class DoubleOps(value: Double) {
  def foo: Double = value
}

val x: Float = 1f
val y = x.foo
Run Code Online (Sandbox Code Playgroud)

如果我尝试对我自己的类型执行相同操作,则分别替换FloatDouble使用MyFloat和实例不可用.MyDoublefooMyFloat

trait MyDouble

object MyDouble {
  implicit class MyFloatAsMyDouble(value: MyFloat) extends MyDouble
}

trait MyFloat

implicit class MyDoubleOps(value: MyDouble) {
  def foo: MyDouble = value
}

val x: MyFloat = new MyFloat { }
val y = x.foo
Run Code Online (Sandbox Code Playgroud)

$ …
Run Code Online (Sandbox Code Playgroud)

scala numbers implicit-conversion

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