小编Mar*_*377的帖子

如何否定正则表达式中的特定单词?

我知道我可以否定一组字符,[^bar]但是我需要一个正则表达式,其中否定适用于特定的单词 - 所以在我的例子中我如何否定实际bar而不是[^bar]

regex

594
推荐指数
9
解决办法
64万
查看次数

PHP文件是否有静态代码分析器[如Lint]?

是否有PHP文件的静态代码分析器?二进制本身可以检查语法错误,但我正在寻找更多的东西,比如未使用的变量赋值,分配到的数组,而不是先被初始化,以及可能的代码样式警告.开源程序将是首选,但如果强烈建议,我们可能会说服公司支付费用.

php code-analysis static-analysis

460
推荐指数
9
解决办法
14万
查看次数

聪明的指针:或谁拥有你的宝贝?

C++完全是关于内存所有权
Aka" Ownership Semantics "

一块动态分配的内存的所有者负责释放该内存.所以这个问题真的变成了拥有记忆的人.

在C++中,所有权都是由RAW指针包含在内部的类型记录的,因此在一个好的(IMO)C++程序中,很少见[RARE并非永远]看到RAW指针传递(因为RAW指针没有推断的所有权因此我们不能告诉谁拥有记忆,因此如果没有仔细阅读文件,你无法分辨谁负责所有权).

相反,很少看到RAW指针存储在类中,每个RAW指针都存储在自己的SMART指针包装器中.(注意:如果你没有一个对象,你不应该存储它,因为你不知道什么时候它会超出范围并被销毁.)

所以问题是:

  • 人们遇到什么类型的所有权语义?
  • 使用哪些标准类来实现这些语义?
  • 你认为它们在哪些情况下有用?

让我们为每个答案保留一种语义所有权,这样他们就可以单独上下投票

摘要:

从概念上讲,智能指针很简单,而且简单易用.我已经看过许多尝试过的实现,但总是以某种方式打破它们,这对于随意使用和示例来说并不明显.因此,我建议始终使用经过良好测试的"智能指针",而不是自己动手.std :: auto_ptr或其中一个提升智能指针似乎涵盖了我的所有需求.

的std :: auto_ptr的<T>:

单身人士拥有该物品.
但允许转让所有权.

用法:
======
这允许您定义显示所有权显式转移的接口.

升压:: scoped_ptr的<T>

单身人士拥有该物品.
不允许转让所有权.

用法:
======
用于显示明确的所有权.
对象将被析构函数或显式重置时销毁.

boost :: shared_ptr <T>(std :: tr1 :: shared_ptr <T>)

多个所有权.
这是一个简单的引用计数指针.当引用计数达到零时,对象被销毁.

用法:
======
当对象可以有多个owers,其生命周期无法在编译时确定.

升压::的weak_ptr <T>

与shared_ptr <T>一起使用.
在指针循环可能发生的情况下.

用法:
======
用于在仅循环维护共享引用计数时停止保留对象的周期.

c++ memory-management smart-pointers ownership-semantics

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

如何检查服务器上是否启用了mod_rewrite?

目前我正在使用lightspeed服务器托管.托管说mod_rewrite已启用但我无法让我的脚本在那里工作.每当我尝试访问该URL时,它都会返回404 - 未找到的页面.

我将相同的代码放在另一台运行Apache的服务器上.它正在那里工作.所以我想,这是.htaccessmod_rewrite问题.

但Hosting支持仍然坚持要求他们的mod_rewrite已启用,所以我想知道如何检查它是否实际启用.

我试着检查phpinfo(),但没有运气,我找不到mod_rewrite,是因为他们正在使用lightspeed

有没有办法检查?请帮帮我.谢谢.

仅供参考:我的.htaccess代码是

Options -Indexes

<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我也尝试过这样

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

但结果相同.

php .htaccess mod-rewrite url-rewriting lightspeed

95
推荐指数
13
解决办法
24万
查看次数

编译器优化未使用字符串的行为不一致

我很好奇为什么下面的代码:

#include <string>
int main()
{
    std::string a = "ABCDEFGHIJKLMNO";
}
Run Code Online (Sandbox Code Playgroud)

当使用编译时,将-O3产生以下代码:

main:                                   # @main
    xor     eax, eax
    ret
Run Code Online (Sandbox Code Playgroud)

(我完全理解不需要多余的,a因此编译器可以从生成的代码中完全忽略它)

但是以下程序:

#include <string>
int main()
{
    std::string a = "ABCDEFGHIJKLMNOP"; // <-- !!! One Extra P 
}
Run Code Online (Sandbox Code Playgroud)

产量:

main:                                   # @main
        push    rbx
        sub     rsp, 48
        lea     rbx, [rsp + 32]
        mov     qword ptr [rsp + 16], rbx
        mov     qword ptr [rsp + 8], 16
        lea     rdi, [rsp + 16]
        lea     rsi, [rsp + 8]
        xor …
Run Code Online (Sandbox Code Playgroud)

c++ gcc compilation clang compiler-optimization

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

SHA-256或MD5用于文件完整性

我知道,SHA-256优于MD5的安全性等,但是,如果我用一种方法来只检查文件的完整性(即,无关的密码加密等),是否有任何优势使用SHA-256?

由于MD5是128位而SHA-256是256位(因此大两倍)......

  1. 加密需要两倍的时间吗?

  2. 如果时间不重要,就像在备份程序中一样,文件完整性就是所需要的,那么有人会反对MD5使用不同的算法,甚至提出不同的技术吗?

  3. 使用MD5产生校验和吗?

hash md5 file sha256

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

为什么在C++ 11中使用&&时使用std :: move?

可能重复:
有人可以向我解释移动语义吗?

我最近参加了一个C++ 11研讨会,并给出了以下一些建议.

when you have && and you are unsure, you will almost always use std::move
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释为什么你应该使用std::move而不是某些替代品以及某些不应该使用的情况std::move

c++ move-semantics c++11

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

在尝试将GDB附加到进程时如何解决"ptrace操作不允许"?

我正在尝试使用gdb附加程序,但它返回给我:

附加到进程29139无法附加到进程.如果您的uid与目标进程的uid匹配,请检查/ proc/sys/kernel/yama/ptrace_scope的设置,或以root用户身份再次尝试.有关更多详细信息,请参阅/etc/sysctl.d/10-ptrace.conf ptrace:不允许操作.

edb-debugger返回"无法附加到进程,请检查权限,然后重试."

strace返回"attach:ptrace(PTRACE_ATTACH,...):不允许操作"

我将"kernel.yama.ptrace_scope"1更改为0并将"/ proc/sys/kernel/yama/ptrace_scope"1更改为0并尝试使用以下方法设置"set environment LD_PRELOAD =./ ptrace.so":

#include <stdio.h>
int ptrace(int i, int j, int k, int l) {
    printf(" ptrace(%i, %i, %i, %i), returning -1\n", i, j, k, l);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但它仍然返回相同的错误.我如何将它附加到调试器?

c linux debugging gdb strace

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

在github,bitbucket等存储库网站上托管敏感数据的安全性如何?

这只是出于好奇的问题.我想知道在Github,Bitbucket等存储库网站上托管敏感数据通常被认为是多么安全?是否足够安全地摆脱本地机器上的所有代码并将其全部存储在那里?保守公司机密意义上的安全性如何?我注意到这些网站吹嘘像谷歌和雅虎这样的大公司使用他们的服务,但这些大公司是否真的将这些商业机密和重要的公司代码存储在这样的网站上?

Github有一个页面(http://help.github.com/security),它有一些有趣的信息,表明他们正在推销它像我描述的那样简单.但实际上,像谷歌这样的大公司是否真的发现他们的专有机密和大量代码在这些网站上的窥探和灾难性事件确实是安全的?

security version-control github repository bitbucket

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

如何判断.NET应用程序是否在DEBUG或RELEASE模式下编译?

我的计算机上安装了一个应用程序.如何确定它是否在DEBUG模式下编译?

我曾尝试使用.NET Reflector,但它没有显示任何具体内容.这是我看到的:

// Assembly APPLICATION_NAME, Version 8.0.0.15072
Location: C:\APPLICATION_FOLDER\APPLICATION_NAME.exe
Name: APPLICATION_NAME, Version=8.0.0.15072, Culture=neutral, PublicKeyToken=null
Type: Windows Application
Run Code Online (Sandbox Code Playgroud)

.net executable debug-symbols compiler-options

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