小编sig*_*ice的帖子

如何在OS X Lion上获取bash以在选项卡完成期间忽略.DS_Store文件?

我有很多目录,其中包含一个文件..DS_Store文件的存在使文件名完成有点尴尬.当我点击标签时,如何告诉bash忽略.DS_Store文件?

macos bash shell command-line

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

内存屏障是否确保缓存一致性已完成?

假设我有两个线程来操纵全局变量x.每个线程(或我认为的每个核心)都有一个缓存副本x.

现在说Thread A执行以下说明:

set x to 5
some other instruction
Run Code Online (Sandbox Code Playgroud)

现在set x to 5执行时,缓存的值x将设置为5,这将导致缓存一致性协议使用新值来操作和更新其他核心的缓存x.

现在我的问题是:什么时候x实际设置5Thread A缓存中,其他内核的缓存在some other instruction执行之前是否会更新?或者应该使用内存屏障来确保?:

set x to 5
memory barrier
some other instruction
Run Code Online (Sandbox Code Playgroud)

注意:假设指令是按顺序执行的,也假设set x to 5执行时,5会立即放入线程A的缓存中(因此指令不会放在队列中或稍后要执行的内容).

x86 assembly operating-system memory-barriers cpu-cache

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

为什么gcc输出机器代码有nop指令

每次我做一个objdump -d我总是看到asm代码与批量的nop指令(指令什么都不做)

例如,采取相同的程序:

#include <stdio.h>
#include <math.h>

int main()
{
    printf("Hello World!\n");
    printf("cos:  %f\n", cos(1));
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

示例的objdump在入口点的末尾有2个nops

0000000000400450 <_start>:
400450: 31 ed                   xor    %ebp,%ebp
400452: 49 89 d1                mov    %rdx,%r9
400455: 5e                      pop    %rsi
400456: 48 89 e2                mov    %rsp,%rdx
400459: 48 83 e4 f0             and    $0xfffffffffffffff0,%rsp
40045d: 50                      push   %rax
40045e: 54                      push   %rsp
40045f: 49 c7 c0 00 06 40 00    mov    $0x400600,%r8
400466: 48 c7 c1 70 05 40 00    mov    $0x400570,%rcx
40046d: 48 c7 …
Run Code Online (Sandbox Code Playgroud)

c objdump nop

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

如何在elisp代码中注释掉sexps?

在elisp代码中注释掉sexps的首选方法是什么?(if nil ...)到目前为止,我一直在包装我的性别.

emacs elisp

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

通过SSL连接将转发请求连接到转发HTTP代理?

我正在编写HTTP代理,我无法理解通过TLS发出CONNECT请求的一些细节.为了获得更好的图片,我正在尝试使用Apache来观察它与客户端的交互方式.这是我的默认虚拟主机.

NameVirtualHost *:443
<VirtualHost>
  ServerName example.com
  DocumentRoot htdocs/example.com  
  ProxyRequests On
  AllowConnect 22
  SSLEngine on
  SSLCertificateFile /root/ssl/example.com-startssl.pem
  SSLCertificateKeyFile /root/ssl/example.com-startssl.key
  SSLCertificateChainFile /root/ssl/sub.class1.server.ca.pem
  SSLStrictSNIVHostCheck off
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Apache和我的客户之间的对话是这样的.

一个.客户端连接example.com:443并发送example.comTLS握手.

湾 客户端发送HTTP请求.

CONNECT 192.168.1.1:22 HTTP/1.1
Host: example.com
Proxy-Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)

C.Apache说HTTP/1.1 400 Bad Request.Apache错误日志说

Hostname example.com provided via SNI and hostname 192.168.1.1
provided via HTTP are different. 
Run Code Online (Sandbox Code Playgroud)

似乎Apache没有查看Host头,除了看到它存在,因为HTTP/1.1需要它.如果客户端发送,我会得到相同的失败行为Host: foo.如果我在不使用TLS的情况下向example.com:80发出HTTP请求,那么Apache会将我连接到192.168.1.1:22.

我不完全理解这种行为.CONNECT请求有问题吗?我似乎无法找到解释所有这些的RFC的相关部分.

apache ssl proxy http

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

如何在Perl中预先分配字符串?

我有一个Perl脚本可以处理大量数据.由于重复使用点(连接)运算符,有许多字符串变量从小开始但变长很长.以这种方式增长字符串会导致重复重新分配吗?如果是,是否有预先分配字符串的方法?

string perl

13
推荐指数
3
解决办法
3509
查看次数

这个C代码如何工作?

我正在查看以下代码,我使用递归在C中以相反的顺序打印字符串:

void ReversePrint(char *str) { //line 1
  if(*str) {                   //line 2
      ReversePrint(str+1);     //line 3
      putchar(*str);           //line 4
  }
}
Run Code Online (Sandbox Code Playgroud)

我对C相对较新,并且对第2行感到困惑.*str从我的理解是取消引用指针并应返回当前位置的字符串值.但是如何将它用作条件语句的参数(除了布尔权限?)?在第3行,指针将始终递增到下一个块(自int为4个字节)...因此,如果在字符串结束后的下一个内存块中发生数据,则此代码无法失败?

更新:所以c中没有布尔类型正确吗?如果值为0,则条件语句的计算结果为"false",否则为"true"?

c recursion pointers

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

是否有使用AT&T语法的完整x86汇编语言参考?

理想情况下会有一个用AT&T语法编写的英特尔软件开发人员手册版本,但我很乐意找到足够接近的版本.

x86 assembly intel

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

在上下文中绘图时如何翻转坐标?

我从UIImage创建一个上下文,然后我用它绘制它

CGContextDrawImage(bitmapContext,
                   CGRectMake(0, 0,
                              originalImage.size.width,
                              originalImage.size.height),
                   oImageRef); 
Run Code Online (Sandbox Code Playgroud)

由于石英中的翻转坐标系,图像呈现倒置.我该如何解决这个问题?

iphone cocoa-touch core-graphics uikit

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

如何调用使用define创建的GNU make宏?

在我的Makefile中调用GREP的两种方式有什么不同吗?任何理由我应该使用其中一个?两者似乎都产生了相同的结果.

define GREP
$(word 3,$(shell echo "#define  FOO     0xfff00100"))
endef

all:
        @echo $(GREP)
        @echo $(call GREP)
Run Code Online (Sandbox Code Playgroud)

macros gnu makefile

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