小编rr-*_*rr-的帖子

关于不推荐使用`$ HTTP_RAW_POST_DATA`的警告

我切换到PHP 5.6.0,现在到处都收到以下警告:

Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will
be removed in a future version. To avoid this warning set
'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream
instead. in Unknown on line 0

Warning: Cannot modify header information - headers already sent in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

好吧,我依靠一些不赞成的功能.除了我没有!

  1. 我没有在任何脚本中使用过这个变量.说实话,我不知道它甚至存在.
  2. phpinfo()显示我已always_populate_raw_post_data设置为0(禁用).那么发生了什么?

我不想通过将此值设置为-1来"避免警告".这只会隐藏警告,我仍然会弃用配置.我想从源头解决问题,并知道为什么PHP认为HTTP_RAW_POST_DATA填充是打开的.

php migration configuration

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

最快的C/C++图像大小调整库

我正在编写一个需要调整大量图像的应用程序......这些是我的要求:

  • C/C++
  • 至少支持jpeg/png
  • 快速
  • 跨平台

到目前为止,我的选择是:

  • OpenCV的
  • CIMG
  • ImageMagick的
  • GraphicsMagick(据说速度很快)
  • 魔鬼
  • 来自Boost的GIL
  • CxImage的
  • Imlib2(据说很快)
  • 还有其他人?

所有这些都可以完成工作,但我在这里寻找最快的,我无法找到他们的表现任何基准.

c c++ resize image

18
推荐指数
4
解决办法
3万
查看次数

LD_LIBRARY_PATH似乎不起作用

我正在尝试编译测试文件:

gcc -o test  test.c -lg2c
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

/usr/bin/ld: cannot find -lg2c
Run Code Online (Sandbox Code Playgroud)

如果我使用:

gcc -o test  test.c -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -lg2c
Run Code Online (Sandbox Code Playgroud)

然后它工作正常.

所以我添加了这样的路径:

LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/3.4.6:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

当我在那里使用$LD_LIBRARY_PATH它时,但是:

gcc -o test  test.c -lg2c
Run Code Online (Sandbox Code Playgroud)

仍然不起作用,它给出了同样的错误,我无法弄清楚为什么.

我正在使用CentOS(2.6.32-279.9.1.el6.x86_64),任何帮助将不胜感激.


编辑:编译器版本:

rpm -qa | grep gcc

gcc-4.4.6-4.el6.x86_64
compat-gcc-34-g77-3.4.6-19.el6.x86_64
libgcc-4.4.6-4.el6.x86_64
compat-gcc-34-3.4.6-19.el6.x86_64
gcc-gfortran-4.4.6-4.el6.x86_64
libgcc-4.4.6-4.el6.i686
gcc-c++-4.4.6-4.el6.x86_64
Run Code Online (Sandbox Code Playgroud)

编辑:我尝试使用LIBRARY_PATH,现在我得到一个不同的错误:

gcc: spec failure: unrecognized spec option 'M'
Run Code Online (Sandbox Code Playgroud)

我不知道这意味着什么.

linux gcc gnu centos

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

检查Bash中是否存在命令(包括超级用户)

我想检查一个程序是否安装在UNIX系统上.

我可以使用如下命令:

  • command -v,
  • hash,
  • type,
  • which...

...... 在这个答案中已经提到所有这些.

但是,如果我想作为普通用户测试我或任何超级用户是否可以运行给定命令,它们都不起作用.

这是我的意思的一个例子:

dummy:~$ command -v poweroff; echo $?
1
dummy:~$ su
root:~# command -v poweroff; echo $?
/sbin/poweroff
0
Run Code Online (Sandbox Code Playgroud)

如您所见,普通用户没有发现该poweroff命令的存在.请注意,虚拟用户可以随意查看内容/sbin.

bash shell

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

MIME,Internet媒体类型和HTTP有什么区别?

根据我的阅读,MIME是用于编码电子邮件的东西.

然后就是这种称为互联网媒体类型的东西.
我们有网络媒体类型,如text/plain,application/json,image/png等.

然后我们有HTTP协议及其Content-Type标头,有效标头的示例包括:

Content-Type: text/plain
Content-Type: text/plain; charset=utf-8
Content-Type: multipart/mixed; boundary=blah(来源)

字符串如" text/plain; charset=utf-8"是绑定到HTTP协议,MIME标准还是完全有效的Internet媒体类型的表达式?

这些协议之间的关系到底是什么?

content-type http mime-types

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

我期望它不会抛出Bad_alloc

考虑这个简单的程序:

#include <exception>
#include <iostream>

int main(void)
{
    const std::size_t size = 1<<31;
    int *a = NULL;

    try
    {
        a = new int[size];
    }
    catch (std::exception &e)
    {
        std::cerr << "caught some bad guy" << std::endl;
        return 1;
    }

    if (a == NULL)
    {
        std::cerr << "it's null, can't touch this" << std::endl;
        return 1;
    }

    std::cerr << "looks like 'a' is allocated alright!" << std::endl;

    for (size_t i = 0; i < size; i ++)
        std::cout << a[i] << …
Run Code Online (Sandbox Code Playgroud)

c++ out-of-memory segmentation-fault

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

drmDropMaster 需要 root 权限?

请原谅冗长的介绍,但我在 SO 上没有看到任何其他问题。

我正在使用 DRM(直接渲染管理器,Linux 内核模式设置的包装器)并且我很难理解其设计的一部分。

基本上,我可以在我的虚拟终端中打开一个图形卡设备,设置帧缓冲区,更改连接器及其 CRTC 就好了。这导致我能够在不需要 X 服务器的情况下以轻量级图形模式渲染到 VT(这就是 kms 的含义,实际上 X 服务器在下面使用它)。

然后我想实现优雅的VT切换,所以当我按ctrl+alt+f3等时,我可以看到我的其他控制台。事实证明,调用ioctl()来自linux/vt.h某些用户信号的内容并处理一些用户信号很容易。

但后来我尝试从我的图形程序切换到正在运行的 X 服务器。呸!根本没有用。X 服务器根本没有绘制任何东西。经过一番挖掘,我发现在Linux内核中,只有一个程序可以进行内核模式设置。所以发生的事情是这样的:

  1. 我从 X 切换到虚拟终端
  2. 我运行我的程序
  3. 该程序进入与图形模式drmOpendrmModeSetCRTC等等。
  4. 我切换回 X
  5. X 不再具有恢复其自身模式的权限。

然后我在wayland源代码中找到了这个:drmDropMaster()drmSetMaster()。这些函数应该释放和重新获得设置模式的权限,以便 X 服务器可以继续工作,并且在切换回我的程序后,它可以从那里获取它。


最后才是真正的问题。 这些功能需要 root 权限。这是我不明白的部分。我可以搞乱内核模式,但我不能说“好吧 X11,我玩完了,我现在给你访问权限”?为什么?或者这在理论上应该有效,而我只是在我的代码中做错了什么?(例如,使用错误的文件描述符或其他任何东西。)

如果我尝试以普通用户身份运行我的程序,我会收到“权限被拒绝”。如果我以 root 身份运行它,它工作正常 - 我可以从 X 切换到我的程序,反之亦然。

为什么?

x11 linux-kernel wayland

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

便携式支持大文件

我在看

我仍然不知道如何以便携方式了解大于4 GB的文件大小.

值得注意的是,将一些答案纳入Cygwin的编译失败,而其他人则因Linux而失败.

c c++ large-files

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

如何在Bash中获取绝对URL

我想从Bash中的特定页面获取所有URL.

这里已经解决了这个问题:只使用sed或awk从html页面中提取url的最简单方法

The trick, however, is to parse relative links into absolute ones. So if http://example.com/ contains links like:

<a href="/about.html">About us</a>
<script type="text/javascript" src="media/blah.js"></a>
Run Code Online (Sandbox Code Playgroud)

I want the results to have following form:

http://example.com/about.html
http://example.com/media/blah.js
Run Code Online (Sandbox Code Playgroud)

How can I do so with as little dependencies as possible?

html bash html-parsing

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