小编A. *_* K.的帖子

如何将文件映射到shell命令,以便在"cat"该文件时执行?

我想创建一个文件并以某种方式将其挂钩到一个shell命令,该命令会在我的cat文件中执行.这样文件的内容就是stdoutshell命令的内容.

有点像/proc/meminfo.

谢谢

linux bash

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

实时排序数组

这是一个面试问题.

"每股收到1000个出价.想要存储前50个出价并计算平均值.怎么样?"

language-agnostic sorting algorithm mean

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

表达操作语义时出现符号问题

我正在尝试编写一些推理规则,但我无法理解通常用于编写它们的符号的含义.

例如:我为某个类型表达式编写了以下规则:

 class(r) ? t,  \there_exists v ? r ? type(v)
-------------------------------------------------------------
 ?, m:n -> r ? n:(?, r, {}) <-  r
Run Code Online (Sandbox Code Playgroud)

m是一个声明n被替换为r.

(如果r在表达式属于t(类型表达)并且存在v使得r属于的类型v).

可能是我的等式是完全错误的.至少有人请解释?:运营商的意思.同样在本杰明皮尔斯的书中,他称之为?打字环境.有人可以通过一个例子来解释它的含义(如果例子是在Haskell或Lisp或C++中,我会很感激)

谢谢

PS:这不是作业.

haskell functional-programming

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

计算 Objective-c 二进制文件中选择器的数量

是否有工具/脚本可以帮助我迭代(或仅计算)objective-c 二进制文件中的所有选择器。我想静态分析目标 c 二进制文件并获得该指标。我试过了,otool -tV但它转储的所有数据都是我无法解析的十六进制数据。有些人建议使用,lldb但我不确定如何做到这一点。

objective-c otool selector objective-c++ lldb

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

如何从 MachO 二进制文件中提取 __bitcode/__bundle 部分

对于带有嵌入位码的二进制文件(即使用 编译-fembed-bitcode)。我怎样才能提取该部分,以便我可以像任何其他位码文件一样使用该位码文件,例如运行optllvm-dis

作为测试用例,我有这个 hello-world 程序:

// hello.cpp
#include<iostream>

int main() {
  std::cout << "hello world";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译为:clang++ -O2 test.cpp -o test.o -fembed-bitcode -c

显示其中objdump有一个__bitcode部分:

objdump -h test.o 

test.o: file format Mach-O 64-bit x86-64

Sections:
Idx Name          Size      Address          Type
  0 __text        000002eb 0000000000000000 TEXT 
  1 __gcc_except_tab 00000068 00000000000002ec DATA 
  2 __cstring     0000000c 0000000000000354 DATA 
  3 __bitcode     00002bc0 0000000000000360 DATA 
  4 __cmdline     00000046 0000000000002f20 DATA 
  5 __compact_unwind 00000060 0000000000002f68 …
Run Code Online (Sandbox Code Playgroud)

llvm objdump objcopy llvm-ir bitcode

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

如何检测编译器何时发出错误

为了编译C++项目,我想编写一个perl脚本来编译我的程序,看看编译是否出错.如果编译器给出任何编译错误,我将需要执行一些其他任务.

perl脚本将是这样的:

   @l1 =  `find . -name '*.c'`;
   @l2 =  `find . -name '*.cpp'`;
   @l3 =  `find . -name '*.cc'`;
   my $err;
   my $FLAGS = "-DNDEBUG"   
   push(@l , @l1, @l2, @l3);
   chomp(@l);
   foreach (@l) {
     print "processing file $_ ...";
     $err = `g++ $_ $FLAGS`;
     if($err == something) {
       #do the needful
     }
   }
Run Code Online (Sandbox Code Playgroud)

那应该是什么东西

c++ perl g++

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

decltype和auto之间的等价性

由于auto和decltype都用于推断类型.我以为他们会一样的.

但是,这个问题的答案表明不然.

我仍然认为他们不可能完全不同.我可以想到一个简单的例子,其中i两种情况下的类型相同.

auto i = 10; and decltype(10) i = 10;
Run Code Online (Sandbox Code Playgroud)

那么auto和decltype行为相同的可能情况是什么呢?

c++ type-inference decltype auto

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

如何打印 iOS 二进制文件中所有 Objective-C 类的名称?

我想使用"otool""objdump"打印在 iOS 二进制文件中找到的所有 Objective-C 类的名称。我在 macOS 上的未加密的 iOS 二进制文件上执行此操作。

我尝试过的:

  1. 这里建议的解决方案如何静态转储 Cocoa 应用程序中调用的所有 ObjC 方法?
otool -oV /path to executable/ | grep name | awk '{print $3}'
Run Code Online (Sandbox Code Playgroud)

但我不知道如何只解析 Objective-C 类名。

  1. 使用“nm”的解决方案,但我不太喜欢它:
nm /path to executable/ | grep _OBJC_CLASS_
Run Code Online (Sandbox Code Playgroud)

你们能帮我用 cmd/脚本来打印 iOS 二进制文件中所有 Objective-C 类的名称吗?

mach-o objective-c otool objdump

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

Swizzling +[NSObject初始化]方法来记录每个类实例化

基本上,我想在每次实例化类对象时进行打印。下面的代码显示了意图。

@interface NSObject (ILogger)
+ (void)initialize;
@end

@implementation NSObject (ILogger)
+ (void)initialize
{
    NSLog(@"Initializing %s", class_getName([self class]));
}
@end
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为NSObject已经有一个+initialize方法,所以这种方法会导致未定义的行为。编译器还警告该问题:warning: category is implementing a method which will also be implemented by its primary class

一种想法是以某种方式混合+[NSObject initialize]并进行日志记录。我该如何安全地做到这一点?

编辑:

也许我使用了错误的术语,但目标是了解应用程序中是否使用了某个类。如果创建了多个类的对象,则不需要每次都记录,一次就足够了。

objective-c swizzling ios

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

将 u128 复制到 [u64;2]

如何u128将 a 转换为 s 数组u64。当将 a 传递u128给采用任意精度 int 的 API 时,该 API 需要 3 个参数

LLVMValueRef LLVMConstIntOfArbitraryPrecision   (
  LLVMTypeRef IntTy,
  unsigned  NumWords,
  const uint64_t Words[] 
)
Run Code Online (Sandbox Code Playgroud)

前两个参数已知(IntTy=LLVMInt128TypeNumWords= 2)。第三个参数需要一个 s 数组uint64_t。提供的u128需要转换为u64的数组。从rust 文档来看,它似乎u128可以转换为字节数组,例如

let buff: [u8; 16] = u128_val.to_ne_bytes();
let Words: [u64; 2] = ?? // What to do here?
Run Code Online (Sandbox Code Playgroud)

如何buff转换为数组Words?另外,如何处理字节序。为简单起见,代码生成器和 API 将在具有相同字节序的机器上运行。

types arbitrary-precision rust

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