小编use*_*ser的帖子

chroot如何影响动态链接?

这是我的场景:

我创建了一个debootstrap ubuntu maverick(64位)环境.我将它/env/mav/放在我的ubuntu(64位)清晰系统上.我可以chroot进入/env/mav,可以完美地利用特立独行系统.

我甚至可以在chrooted环境之外使用清晰的程序.那/env/mav/bin/ls将是运行.

但是,我注意到如果我修改LD_LIBRARY_PATH/env/mav/lib[1] [2]

我运行的每一个程序(清醒和特立独行)都会立即崩溃.(例如ls导致段错误).kern.log显示:

segfault at 7fece284aa18 ip 00007fece284aa18 sp 00007fff32028158 error 15
Run Code Online (Sandbox Code Playgroud)

但是,如果我chroot进入/env/mav,每个程序运行正常.并不是所有的库都只是从jailed(/env/mav)中读取的/lib?那么在这种情况下有什么区别chroot和修改LD_LIBRARY_PATH呢?

此外,如果我:

mount -B /env /env/mav/env
Run Code Online (Sandbox Code Playgroud)

然后chroot /env然后设置LD_LIBRARY_PATH/env/mav/lib,一切仍然运行良好.

我对这里内部发生​​的事情感到茫然.是否有某些ld内部存储在某处?chroot是否做了一些神奇的事情?

[1]用例是从正确绑定的特立独行环境中运行程序,以便在特立独行的监狱外设置动态链接库.

[2]这只是一个简略的例子.实际上/usr/lib,等等都包括在内.包括特立独行的环境/ lib"毒药"的一切; 使用其他特立独行的库目录没有问题.

ubuntu linker chroot ld

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

随机初始化JAVA中的BitSet

我有BitSet,必须随机初始化.有没有办法做到这一点?

提前致谢.

java random

6
推荐指数
2
解决办法
1700
查看次数

实际使用Linux实时调度优先级(SCHED_FIFO和SCHED_RR)?

我正在试验,SCHED_FIFO我看到一些意想不到的行为.我使用的服务器有12个内核,禁用了超线程.所有可配置中断都设置为在CPU 0上运行.

我的程序启动使用pthreads库为低优先级任务创建一个线程,而不更改CPU关联设置为核心0的调度策略.然后,父线程将其CPU亲和性设置为核心3,并将其自己的调度策略设置为SCHED_FIFO使用sched_setscheduler()pid零和优先级1然后开始运行非阻塞循环.

该计划本身运行良好.但是,如果我在程序运行时尝试第二次登录服务器,则在我停止程序之前终端没有响应.这就像调度程序试图在与实时进程相同的核心上运行其他进程.

  1. 我错过了什么?
  2. 调度程序是否仍会尝试在运行实时进程的核心上运行其他进程?如果是这样,有没有办法防止这种情况?
  3. 是否sched_setscheduler()在父级中设置调度策略会更改之前创建的子级的行为?

提前致谢.

c linux kernel real-time scheduler

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

如何知道在Picturebox中加载图像的时间

我有一些巨大的图像(7000*5000)同时加载到我的程序中,我将逐一显示在图片框中.这些图像需要一些时间才能加载到PictureBox中.起初我将所有图像加载到Image数组中Bitmap,然后我只是在图片框中显示第一个图像picturebox.Image = imageArray[0].所以我想显示等待光标,直到第一张图像显示在Picturebox中.有没有办法知道第一张图像何时出现在Picturebox上?

.net c#

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

阅读ELF二进制和打印功能虚拟地址的plt部分

我想读取ELF二进制文件的.plt部分并获取外部函数的所有虚拟地址.

Disassembly of section .plt:

0000000000400400 <puts@plt-0x10>:
  400400:       ff 35 02 0c 20 00       pushq  0x200c02(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400406:       ff 25 04 0c 20 00       jmpq   *0x200c04(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40040c:       0f 1f 40 00             nopl   0x0(%rax)

0000000000400410 <puts@plt>:
  400410:       ff 25 02 0c 20 00       jmpq   *0x200c02(%rip)        # 601018 <_GLOBAL_OFFSET_TABLE_+0x18>
  400416:       68 00 00 00 00          pushq  $0x0
  40041b:       e9 e0 ff ff ff          jmpq   400400 <_init+0x20>

0000000000400420 <__libc_start_main@plt>:
  400420:       ff 25 fa 0b 20 00       jmpq   *0x200bfa(%rip) …
Run Code Online (Sandbox Code Playgroud)

c executable elf readelf

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

为bool实现CompareAndSwap

在.NET框架中,原子操作CompareAndExchange仅对定义int,long,double和引用类型.但我需要CompareAndExchange bool类型.我怎样才能实现CompareAndSwapbool

c# boolean compare-and-swap

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

在C#中使用授权进行HTTP发布

我正在努力让你的第一个电话Paypal在帖子中发布消息.我想将它们转换为C#.但我无法编辑Accept标题.

curl https://api.sandbox.paypal.com/v1/oauth2/token \
 -H "Accept: application/json" \
 -H "Accept-Language: en_US" \
 -u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \
 -d "grant_type=client_credentials"
Run Code Online (Sandbox Code Playgroud)

我的代码是

string url = "https://api.sandbox.paypal.com/v1/oauth2/token";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);            

//request.ContentType = "Content-type: text/xml";
//Client.Headers.Add(HttpRequestHeader.UserAgent, "user agent to send");
//request.Headers.Add(HttpRequestHeader.Accept, "application/json");
//request.Headers.Add(HttpRequestHeader.Referer, "string");
//request.Headers.Add(HttpRequestHeader.AcceptLanguage, "string");

request.Method = "POST";
string authInfo = "AfKNLhCngYfGb-Eyv5gn0MnzCDBHD7T9OD7PATaJWQzP3I1xDRV1mMK1i3WO:ECSAgxAiBE00pq-SY9YB5tHw0fd2UlayHGfMr5fjAaULMD2NFP1syLY7GCzt";
request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));
//request.Headers["Accept"] = "application/json";
request.Headers["Accept-Language"] = "en_US";
byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("grant_type=client_credentials");
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); …
Run Code Online (Sandbox Code Playgroud)

c# curl

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

IEnumerable接口

我不明白为什么IList实现IEnumerable考虑到也IList实现的ICollection实现IEnumerable.

c# ienumerable inheritance

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

每个不可变的班级应该是最终的吗?

我正在设计一个用于二十一点游戏的Card类.

我的设计是使用getValue()创建一个Card类,例如返回J为11,Q为12,K为13,然后使用BlackjackCard类扩展它以覆盖该方法,以便这些卡返回10.

然后有些东西击中了我:Card类的对象应该是不可变的.所以我重新阅读了Effective Java 2nd Edition,看看该做什么,我发现不可变类需要是最终的,以避免子类打破不变性.

我也看过互联网,每个人似乎都同意这一点.

Card类应该是最终的吗?

你如何打破这个类的不变性,扩展它:

class Card {
  private final Rank rank;
  private final Suit suit;
  public Card(Rank rank, Suit suit) {
    this.rank = rank;
    this.suit = suit;
  }
  public Rank getRank() {
    return rank;
  }
  public Suit getSuit() {
    return suit;
  }
  public int getValue() {
    return rank.getValue();
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java final immutability

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

C#捕获任何退出的异常

是否可以从控制台应用程序中的任何位置捕获异常,导致应用程序终止?我试图这样做而不必尝试{}捕捉{}.

c# exception try-catch

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