Malvin's Blog

无志者千难万难,有志者千方百计

0%

因为最近使用 Dlib,要求使用 C++11,所以必须在 Centos 6.5上使用 gcc 4.8 以上版本,因此记录一下安装的过程:

1
2
3
4
cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
scl enable devtoolset-2 bash

公司服务器还是处于centos6.5的版本,因此,最近在改php扩展的时候,还是需要先在 centos6 下测试一下插件,所以搞了个虚拟机安装起 centos , 在编译一下 php7.2 的源码,期间遇到的问题都记录一下。

阅读全文 »

1、cat命令:

功能:1)显示整个文件。 示例: $ cat fileName 2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。 示例: $ cat file1 file2 > file 说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案) cat参数详解: -n 或 –number 由 1 开始对所有输出的行数编号 -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号 -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 –show-nonprinting

阅读全文 »

前言

挖矿这种东西,其实什么时候都十分讲求时效性,这段时间尝试了一下用CPU来挖门罗币(XMR),可谓惨惨惨,先放一下战绩: 是的,你并没有看错,这大概是挖了4天的成功,我连矿池的手续费都为挖出来,泪目( Ĭ ^ Ĭ )……当然,我不是说我现在挖门罗币没有收益,我这个仅仅是开着玩而已,CPU挖起来十分费力,算力跟不上真正的显卡矿机。具体的显卡矿机的算力后面给出。

阅读全文 »

在我们日常使用 PHP 当中,当然少不了使用 PHP提供的内部函数,例如:file_get_contents / file_put_contents / trim / array_flip… 等等。因为PHP刚开始面向过程的语言的(C/perl的综合体),所以单独的函数很重要。本文讨论如何在 PHP扩展中写自己的方法。 在开始之前,我们需要先了解一下 hello.c 文件的一些结构,按照上一篇文章生成的扩展 hello 来展开我们本章的描述,未看过的可以先查阅《PHP扩展开发(1)-初识扩展》

阅读全文 »

PHP 扩展开发(一):新建扩展

本文在 php 7.1 的基础上描述,请大家注意哦。

1、下载PHP源码

最简单的,就是直接 clone github 的源码,怎么使用 git 就不做介绍了。

cd ~
git clone git@github.com:php/php-src.git 
阅读全文 »

ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i "xxxxx.mp4" -acodec copy -vcodec copy -f flv -y "rtmp://pili-publish.pili.echohu.top/1314xicong/huxicongp?expire=1468471134&token=olwdBfksR8ycLmFPVEytGwjrwEs="

前言

最近搞 Unix编程 & PHP扩展开发 搞得不亦乐乎,忽然,凭我低下的C语言掌控能力,忽然看到一个不能理解的片段(来自Swoole):

struct _swReactor
{
    /*
         .... 省略100行
        */

    int (*add)(swReactor *, int fd, int fdtype);
    int (*set)(swReactor *, int fd, int fdtype);
    int (*del)(swReactor *, int fd);
    int (*wait)(swReactor *, struct timeval *);
    void (*free)(swReactor *);

    int (*setHandle)(swReactor *, int fdtype, swReactor_handle);
    swDefer_callback *defer_callback_list;

    void (*onTimeout)(swReactor *);
    void (*onFinish)(swReactor *);

    void (*enable_accept)(swReactor *);

    int (*write)(swReactor *, int, void *, int);
    int (*close)(swReactor *, int);
    int (*defer)(swReactor *, swCallback, void *);
};

嗯嗯嗯嗯? 为何在 struct 里面有函数指针?作者想干什么? 哦,继续往下看代码,发现,原来是在用C写OOP。

阅读全文 »