首先,命令rev可以实现.
echo "12345"|rev
其次可以自己编写纯bash脚本来实现
脚本 rev.sh 内容如下
命令行: bash rev.sh "想反序的字符串"
源代码在:
http://www.zhangyan.name/fbtopic.php?fid=24
参考资料:http://www.zhangyan.name/fbtopic.php?fid=24
http://zhidao.baidu.com/question/99724148.html
echo "12345"|rev
其次可以自己编写纯bash脚本来实现
脚本 rev.sh 内容如下
命令行: bash rev.sh "想反序的字符串"
源代码在:
http://www.zhangyan.name/fbtopic.php?fid=24
参考资料:http://www.zhangyan.name/fbtopic.php?fid=24
http://zhidao.baidu.com/question/99724148.html
[个人原创]C++学习之多进程并发服务器实例学习
Unix/LinuxC技术 jackxiang 2011-8-19 17:14
近来学习了一下C++在Linux下的多进程并发服务器的模型,听专搞C++服务器的兄弟们说这个也不行,需要Epoll,Select模型,还需要FiFo队列的结合,链表,共享内存等同时起多个进程后循环去共享内存里去取数据,去循环的读FIFO才会高效更有效形成一个更高更强更快的多并发的服务器,本质就是异步服务。
我也想学,但苦于基础不好,于是否给我顺手抓了一本Unix网络编程 实用技术与实例分析,这一章节,代码错误较多,还好有兄弟帮忙调试,在此感谢,看来还是需要把书写好才能省下不少时间啊,写书的人或排版的也许太匆忙罢,和兄弟沟通后说错误多是为了让初学者多调试,写错了也有理由,我倒。
近来事情不多也就了解了下他们的架构,画画图什么的,其实Mysql长连接这块我觉得应该做进PHP中,现在PHP都FastCGI开自己的端口了,长连接也做进去不是难事哇,期待加到下一个PHP扩展中,直接整成可配置的连接池得了,上图:
阅读全文
我也想学,但苦于基础不好,于是否给我顺手抓了一本Unix网络编程 实用技术与实例分析,这一章节,代码错误较多,还好有兄弟帮忙调试,在此感谢,看来还是需要把书写好才能省下不少时间啊,写书的人或排版的也许太匆忙罢,和兄弟沟通后说错误多是为了让初学者多调试,写错了也有理由,我倒。
近来事情不多也就了解了下他们的架构,画画图什么的,其实Mysql长连接这块我觉得应该做进PHP中,现在PHP都FastCGI开自己的端口了,长连接也做进去不是难事哇,期待加到下一个PHP扩展中,直接整成可配置的连接池得了,上图:
阅读全文
有时候复制网上的代码会出现编译不通过的问题,报类似这样的一个问题:error: stray '\161' in program。在网上查了一下,就是全角空格全角引号全角单引号的问题。借助于网上的一段Java代码,把它转换成了C#的代码,并制作了一个小工具,用于去除全角空格。原理是从文字的字节码中将全角空格的字节码(161)替换为半角空格的字节码(32),觉得能通过PHP能去的,找了下,也有的:
http://liuyinfang666.blog.163.com/blog/static/58590920107311105675/
去掉所有的标点(包括全角半角) :
以上Code来源:http://liuxiangdong100.blog.163.com/blog/static/2261943820089252914165/
http://liuyinfang666.blog.163.com/blog/static/58590920107311105675/
去掉所有的标点(包括全角半角) :
以上Code来源:http://liuxiangdong100.blog.163.com/blog/static/2261943820089252914165/
以前查看PHP的php.ini文件的位置如下命令:
方法一:
方法二:
我今天看了下PHP的帮助命令:
php --help
发现有一项存在:
--ini Show configuration file names
于是以后看php.ini的位置是这样的,更简单,更适用:
二)PHP判断是否命令行运行的最好办法:
通过判断是否有传参数执行该php文件。然后再加上判断是否存在$_SERVER[‘SHELL’]变量就行。上代码: #!/usr/bin/env php <?php if (!isset($_SERVER[‘SHELL’]))
方法一:
方法二:
我今天看了下PHP的帮助命令:
php --help
发现有一项存在:
--ini Show configuration file names
于是以后看php.ini的位置是这样的,更简单,更适用:
二)PHP判断是否命令行运行的最好办法:
通过判断是否有传参数执行该php文件。然后再加上判断是否存在$_SERVER[‘SHELL’]变量就行。上代码: #!/usr/bin/env php <?php if (!isset($_SERVER[‘SHELL’]))
我们在做主辅同步时往往会出现辅库出现错误,而这就需要把主库的数据mysqldump出来时,把该辅库的DB的同步给暂时干掉,主库继续写它的BinLog,也就是同步SQL,但辅助库给停下来。
这个时候就需要stop slave下(不然的话,日志一边写,一边备份,容易出错),日志备份完了,再start slave起来。
为什么不flush log 呢?
查了下Mysql的帮助,mysql --help ,这种命令可以这个执行,-e 参数:
#mysql -e "select version()";
+----------------+
| version() |
+----------------+
| 5.0.27-max-log |
+----------------+
是可行的,就用它吧。
-e, --execute=name Execute command and quit. (Disables --force and history
阅读全文
这个时候就需要stop slave下(不然的话,日志一边写,一边备份,容易出错),日志备份完了,再start slave起来。
为什么不flush log 呢?
查了下Mysql的帮助,mysql --help ,这种命令可以这个执行,-e 参数:
#mysql -e "select version()";
+----------------+
| version() |
+----------------+
| 5.0.27-max-log |
+----------------+
是可行的,就用它吧。
-e, --execute=name Execute command and quit. (Disables --force and history
阅读全文
Firebug的下载地址:
https://getfirebug.com/releases/firebug/
--------------------------------------------------------
每次 Firefox 出现较大的版本升级,总有几个扩展不兼容。或者想尝试各种测试中的 Beta 版,扩展不兼容是首先要解决的问题。虽然说可以安装 Nightly Tester Tools 来强制启用,但是这个问题根本就不需要安装一个扩展来解决,而且它目前还不兼容 Firefox 6.0。
最简单的办法就是配置一下 about:config,Firefox 官方有详细的说明,只需新建一个 Extensions.checkCompatibility 就行了。
https://addons.mozilla.org/zh-CN/firefox/downloads/latest/6543/addon-6543-latest.xpi
该通用方法是:在地址栏输入 about:config,点击右键,选择“新建→布尔”,在弹出窗口输入 extensions.checkCompatibility.<version>,确定之后,选择 false。
那么 <version> 究竟该替换成什么呢?请看下面的例子:
Firefox 3.6b2 -> extensions.checkCompatibility.3.6b
Firefox 3.6pre -> extensions.checkCompatibility.3.6p
Firefox 3.6 和 Firefox 3.6.8 -> extensions.checkCompatibility.3.6
Firefox 3.7a1 -> extensions.checkCompatibility.3.7a
Firefox 4.0b2pre -> extensions.checkCompatibility.4.0b
SeaMonkey 2.1a1 -> extensions.checkCompatibility.2.1a
<version> 的规律是:取版本号前三个字符组成的小数 + 1 个字母。
我的是6.0如下配置:
关闭火狐 60 Beta 的扩展兼容检查,按一下下几步操作:
1. 在地址栏中输入 about:config
2. 在页面空白处点击右键,选择新建一个布尔型键值
3. 新键的名称为 extensions.checkCompatibility.6.0
4. 值设定为 false
5. 重新启动 火狐
特别注意:不能全为False,否则Firebug会有时出现异常,最好留下一个稳定版本为True,不能把所有版本都整成False了。
附录:删除about:config的键值方法,
在about:config里加错了一个键值,如何删除?
我刚才给误以为:弹出窗口输入 extensions.checkCompatibility.<version>,而实际是:extensions.checkCompatibility.6.0,原来重置重启动Firefox后就可以删除!
我都安装到Aptana3了,FF7 添加它的Debugger之后提示不兼容,同时有提示Aptana Debugger service 要 firebug 1.2-1.7
我装的firebug是 1.8.4 ……
新版现在都支持不了Aptana Debugger吗
有没有在用Aptan 2 或者3的人啊……你们怎么解决的……
这个还真没用过,你去官网看看呢?或者你在这里安装旧版的firebug试试:https://addons.mozilla.org/zh-CN/firefox/addon/firebug/versions/。
兼容插件:nightly tester tools,
查看:http://tech.sina.com.cn/s/2008-07-24/08052347563.shtmltly tester tools,
查看:http://tech.sina.com.cn/s/2008-07-24/08052347563.shtml
https://getfirebug.com/releases/firebug/
--------------------------------------------------------
每次 Firefox 出现较大的版本升级,总有几个扩展不兼容。或者想尝试各种测试中的 Beta 版,扩展不兼容是首先要解决的问题。虽然说可以安装 Nightly Tester Tools 来强制启用,但是这个问题根本就不需要安装一个扩展来解决,而且它目前还不兼容 Firefox 6.0。
最简单的办法就是配置一下 about:config,Firefox 官方有详细的说明,只需新建一个 Extensions.checkCompatibility 就行了。
https://addons.mozilla.org/zh-CN/firefox/downloads/latest/6543/addon-6543-latest.xpi
该通用方法是:在地址栏输入 about:config,点击右键,选择“新建→布尔”,在弹出窗口输入 extensions.checkCompatibility.<version>,确定之后,选择 false。
那么 <version> 究竟该替换成什么呢?请看下面的例子:
Firefox 3.6b2 -> extensions.checkCompatibility.3.6b
Firefox 3.6pre -> extensions.checkCompatibility.3.6p
Firefox 3.6 和 Firefox 3.6.8 -> extensions.checkCompatibility.3.6
Firefox 3.7a1 -> extensions.checkCompatibility.3.7a
Firefox 4.0b2pre -> extensions.checkCompatibility.4.0b
SeaMonkey 2.1a1 -> extensions.checkCompatibility.2.1a
<version> 的规律是:取版本号前三个字符组成的小数 + 1 个字母。
我的是6.0如下配置:
关闭火狐 60 Beta 的扩展兼容检查,按一下下几步操作:
1. 在地址栏中输入 about:config
2. 在页面空白处点击右键,选择新建一个布尔型键值
3. 新键的名称为 extensions.checkCompatibility.6.0
4. 值设定为 false
5. 重新启动 火狐
特别注意:不能全为False,否则Firebug会有时出现异常,最好留下一个稳定版本为True,不能把所有版本都整成False了。
附录:删除about:config的键值方法,
在about:config里加错了一个键值,如何删除?
我刚才给误以为:弹出窗口输入 extensions.checkCompatibility.<version>,而实际是:extensions.checkCompatibility.6.0,原来重置重启动Firefox后就可以删除!
我都安装到Aptana3了,FF7 添加它的Debugger之后提示不兼容,同时有提示Aptana Debugger service 要 firebug 1.2-1.7
我装的firebug是 1.8.4 ……
新版现在都支持不了Aptana Debugger吗
有没有在用Aptan 2 或者3的人啊……你们怎么解决的……
这个还真没用过,你去官网看看呢?或者你在这里安装旧版的firebug试试:https://addons.mozilla.org/zh-CN/firefox/addon/firebug/versions/。
兼容插件:nightly tester tools,
查看:http://tech.sina.com.cn/s/2008-07-24/08052347563.shtmltly tester tools,
查看:http://tech.sina.com.cn/s/2008-07-24/08052347563.shtml
<1>由例子中可看到,使用PHP加密扩展库Mcrypt对数据加密和解密之前,首先创建了一个初始化向量,简称为iv。由 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);可见创建初始化 向 量需要两个参数:size指定了iv的大小;source为iv的源,其中值MCRYPT_RAND为系统随机数。
<2>函数mcrypt_get_iv_size($cipher,$modes)返回初始化向量大小,参数cipher和mode分别指算法和加 密模式。
<3>加密函数$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); 该函数的5个参数分 别如下:cipher——加密算法、key——密钥、data(str)——需要加密的数据、mode——算法模式、 iv——初始化向量
<4>解密函数 mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); 该函数和加密函数的参数几乎 一样,唯一不同的是data,也就是说data为需要解密的数据$str_encrypt,而不是原始数据$str。
注:加密和解密函数中的参数cipher、key和mode必须一一对应,否则数据不能被还原。
从文件中读取内部前30位,s=30,部分加密,密钥:6BB64B04849715D0AB2D57662AE1BC42
hash_hmac("sha256",substr($fileContent,0,s),"6BB64B04849715D0AB2D57662AE1BC42");
如:
http://php.net/manual/zh/function.crypt.php
http://dev.barad-dur.nl/sha256/index.php
http://gsp100.blogcn.com/articles/php-sha-256%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E5%AE%9E%E7%8E%B0.html
php des加密解密:
调用方法,包含上面的文件:
执行看是否得到了:
PHP之AES加密:
AES是RIJNDAEL的一个子集,固定为RIJNDAEL_128(加密算法)。
其中加密模式有很多种,CBC,CFB等。每种加密模式又有不同种的加密模块段。
aes-cfb在PHP和JAVA中默认是8bit的。
在flash和C++中256bit的。
在PHP中实现加密的为Mcrypt,默认为8bit的。
那么怎么样可以实现AES的256bit块的加密呢,新版的PHP5.3.3以及以上的openssl这个组件有这样的一个函数:openssl_encrypt()
base64加密:
结果:
http://blog.csdn.net/shushengsky/article/details/4961861
下载文件
获取多进程的多个PID:
有兄弟用它调试PHP在Nginx下的fastcgi:
strace -f -p 1000
-f ——跟踪fork之后的子进程
strace -p pid发现 系统调用select/read被疯狂调用。---同事的解决问题邮件摘录,说明这个strace -p还是很有用滴。
主要是说如何实现strace -p 10747来进行跟踪其进程导致CPU到100%的事情。阅读全文
有兄弟用它调试PHP在Nginx下的fastcgi:
strace -f -p 1000
-f ——跟踪fork之后的子进程
strace -p pid发现 系统调用select/read被疯狂调用。---同事的解决问题邮件摘录,说明这个strace -p还是很有用滴。
主要是说如何实现strace -p 10747来进行跟踪其进程导致CPU到100%的事情。阅读全文
鉴于咽喉痛,有痰,头痛不适症状特找腾讯大厦25楼的老医生开药和针对本人的体质做了如下穴位的按摩和药物,鉴于自己水平有限,按自己的理解来写,方便自己:
1.黄芪煮水喝:温性,增强免疫力的药物。
2.按风池穴位。【头的耳朵后面往脖子中间走的两边有一个小凹的地方,可能不是太准确】治:头痛,头胀
3.按五经。【一只手一大拇指和小拇指按注太阳穴其余三个手指放在头盖骨上,不段按压太阳穴,剩下的三只指不断往后走到后脑勺,三指柔圈后要向头顶上滑动一点点距离,以此往复不断慢慢到头顶后到后脑勺】治:头痛 头胀。
4.孔最穴【手腕到导管中间偏前位置,掌心轴上】治:止咳,止血,咳嗽
5.三里穴【膝盖中间往下有点隆起的骨头偏外,按压后发胀的地方】,治:使人强壮,增强免疫
6.热水泡脚。
注意:手指有按压穴位时要于按压处垂直,像扎银针一样。按注一分钟后再放开,如此反复,可以加强免疫,提高不生病和抗病的能力,我是信了,信不信由你。
后记:
对于,畏冷,建议在天冷时吃羊肉,风湿的问题,可以吃点苏必得(胃肠要好),对于小便发黄,其主要是喝水太少,多喝水。
1.黄芪煮水喝:温性,增强免疫力的药物。
2.按风池穴位。【头的耳朵后面往脖子中间走的两边有一个小凹的地方,可能不是太准确】治:头痛,头胀
3.按五经。【一只手一大拇指和小拇指按注太阳穴其余三个手指放在头盖骨上,不段按压太阳穴,剩下的三只指不断往后走到后脑勺,三指柔圈后要向头顶上滑动一点点距离,以此往复不断慢慢到头顶后到后脑勺】治:头痛 头胀。
4.孔最穴【手腕到导管中间偏前位置,掌心轴上】治:止咳,止血,咳嗽
5.三里穴【膝盖中间往下有点隆起的骨头偏外,按压后发胀的地方】,治:使人强壮,增强免疫
6.热水泡脚。
注意:手指有按压穴位时要于按压处垂直,像扎银针一样。按注一分钟后再放开,如此反复,可以加强免疫,提高不生病和抗病的能力,我是信了,信不信由你。
后记:
对于,畏冷,建议在天冷时吃羊肉,风湿的问题,可以吃点苏必得(胃肠要好),对于小便发黄,其主要是喝水太少,多喝水。
Linux c++上常用内存泄露检测工具有valgrind, Rational purify。Valgrind免费。Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工作。阅读全文
前些天突然发现俺的PPT是2007的用着用着就没法输入中文了,没管,现在又要用到,还是没法输入中文,最后,我就在网上找,在sina爱问上找到了,URL:http://ishare.iask.sina.com.cn/f/8883411.html?from=dl
要5积分,我就下载下供自己也可能方便其他人吧。
下载地址如下:
要5积分,我就下载下供自己也可能方便其他人吧。
下载地址如下:
下载文件
[个人原创]YAML的C++解析器 yaml-cpp的实际编译和使用备案
Php/Js/Shell/Go jackxiang 2011-8-10 10:56
C++下有这一个Yaml的解析包,PHP也有一个Yaml的解析包,这样两者就能进行对文件的解析是一个规则,达到统一的目的,双方就可以通讯,这样语言之间对配置的解析一样,上层通过Socket来通信统一,进而实现大系统的搭建和和谐,呵呵。
首先要有CMake环境,需要编译一个CMake出来,然后才是在下载下来的文件目录下运行这个Cmake:
tar -zxvf cmake-2.8.4.tar.gz
首先,需要下载安装Cmake;
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
安装cmake;
其次,下载YAML的C++解析器 yaml-cpp ,URL为:http://www.oschina.net/p/yaml-cpp
编译:
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# cmake -DBUILD_SHARED_LIBS=ON
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test FLAG_WEXTRA
-- Performing Test FLAG_WEXTRA - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/admin/c++/yaml_4_C/yaml-cpp
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# make
Scanning dependencies of target yaml-cpp
[ 3%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitter.cpp.o
[ 6%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitterstate.cpp.o
[ 9%] Building CXX object CMakeFiles/yaml-cpp.dir/src/simplekey.cpp.o
[ 12%] Building CXX object CMakeFiles/yaml-cpp.dir/src/parser.cpp.o
......
[ 96%] Building CXX object test/CMakeFiles/run-tests.dir/spectests.cpp.o
Linking CXX executable run-tests
[ 96%] Built target run-tests
Scanning dependencies of target parse
[100%] Building CXX object util/CMakeFiles/parse.dir/parse.cpp.o
Linking CXX executable parse
[100%] Built target parse
然后呢: make ,后生成:
/home/admin/c++/yaml_4_C/yaml-cpp/test3
libyaml-cpp.so.0.2.6
libyaml-cpp.so.0.2 -> libyaml-cpp.so.0.2.6
libyaml-cpp.so -> libyaml-cpp.so.0.2
查看H文件位置:
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# find . -name "yaml.h"
./include/yaml-cpp/yaml.h
最后,进行Yaml的代码解析测试:
1)建立目录:
mkdir test3
目录位置:root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3
2)写入C++测试代码
1.vi test.cpp
加入:
3).把yaml.h拷贝到test3的目录下来:
4)后进行编译编译:
g++ -o test test.cpp -I../include/ ../libyaml-cpp.so
5)运行测试
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3# ./test
./test: error while loading shared libraries: libyaml-cpp.so.0.2: cannot open shared object file: No such file or directory
6)解决问题:
/home/admin/c++/yaml_4_C/yaml-cpp/test3
libyaml-cpp.so.0.2.6
libyaml-cpp.so.0.2 -> libyaml-cpp.so.0.2.6
libyaml-cpp.so -> libyaml-cpp.so.0.2
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# cp libyaml-cpp.so /usr/lib/
root@116.255.139.240:/usr/lib# ln -s libyaml-cpp.so libyaml-cpp.so.0.2
7)再次执行,得到解决:
再执行就不报错了,原来是没有把这个so给放到/usr/lib下,再就是没有给重新软链接一个,Ok了。
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3# ./test
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3#
8)自由发挥,放到实际的开发中去。
Yaml实际解析测试:
component.yaml这个Yaml文件的内容:
编译:
测试Yaml解析是否成功:
解析成功!!!
最后,当然还有纯C语言的,来解析 YAML 1.1 数据,其编译估计差不多,下载URl:
http://www.oschina.net/p/libyaml
建议用eclipse来开发C++,还有PHP,因为eclipse 有PHP的插件,也有C++的插件,我是用的Zend for eclipse,现在eclipse还有一个Yaml的编辑插件,相关介绍情况如下:
安装YEdit
YEdit是一个在Eclipse上编辑YAML文件的插件。当我们我们使用Python进行App Engine的开发,会涉及编辑一些YAML文件,这个插件提供了较好的支持。
这个还是通过Eclipse的更新管理器来完成安装,在对话框中的在Work with中输入http://dadacoalition.org/yedit,然后勾选该插件,然后不断下一步,稍等片刻,安装成功。
eclipse 下的PHP插件参考:http://chenling1018.blog.163.com/blog/static/1480254201012234015728/
首先要有CMake环境,需要编译一个CMake出来,然后才是在下载下来的文件目录下运行这个Cmake:
tar -zxvf cmake-2.8.4.tar.gz
首先,需要下载安装Cmake;
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
安装cmake;
其次,下载YAML的C++解析器 yaml-cpp ,URL为:http://www.oschina.net/p/yaml-cpp
编译:
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# cmake -DBUILD_SHARED_LIBS=ON
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test FLAG_WEXTRA
-- Performing Test FLAG_WEXTRA - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/admin/c++/yaml_4_C/yaml-cpp
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# make
Scanning dependencies of target yaml-cpp
[ 3%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitter.cpp.o
[ 6%] Building CXX object CMakeFiles/yaml-cpp.dir/src/emitterstate.cpp.o
[ 9%] Building CXX object CMakeFiles/yaml-cpp.dir/src/simplekey.cpp.o
[ 12%] Building CXX object CMakeFiles/yaml-cpp.dir/src/parser.cpp.o
......
[ 96%] Building CXX object test/CMakeFiles/run-tests.dir/spectests.cpp.o
Linking CXX executable run-tests
[ 96%] Built target run-tests
Scanning dependencies of target parse
[100%] Building CXX object util/CMakeFiles/parse.dir/parse.cpp.o
Linking CXX executable parse
[100%] Built target parse
然后呢: make ,后生成:
/home/admin/c++/yaml_4_C/yaml-cpp/test3
libyaml-cpp.so.0.2.6
libyaml-cpp.so.0.2 -> libyaml-cpp.so.0.2.6
libyaml-cpp.so -> libyaml-cpp.so.0.2
查看H文件位置:
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# find . -name "yaml.h"
./include/yaml-cpp/yaml.h
最后,进行Yaml的代码解析测试:
1)建立目录:
mkdir test3
目录位置:root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3
2)写入C++测试代码
1.vi test.cpp
加入:
3).把yaml.h拷贝到test3的目录下来:
4)后进行编译编译:
g++ -o test test.cpp -I../include/ ../libyaml-cpp.so
5)运行测试
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3# ./test
./test: error while loading shared libraries: libyaml-cpp.so.0.2: cannot open shared object file: No such file or directory
6)解决问题:
/home/admin/c++/yaml_4_C/yaml-cpp/test3
libyaml-cpp.so.0.2.6
libyaml-cpp.so.0.2 -> libyaml-cpp.so.0.2.6
libyaml-cpp.so -> libyaml-cpp.so.0.2
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp# cp libyaml-cpp.so /usr/lib/
root@116.255.139.240:/usr/lib# ln -s libyaml-cpp.so libyaml-cpp.so.0.2
7)再次执行,得到解决:
再执行就不报错了,原来是没有把这个so给放到/usr/lib下,再就是没有给重新软链接一个,Ok了。
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3# ./test
root@116.255.139.240:/home/admin/c++/yaml_4_C/yaml-cpp/test3#
8)自由发挥,放到实际的开发中去。
Yaml实际解析测试:
component.yaml这个Yaml文件的内容:
编译:
测试Yaml解析是否成功:
解析成功!!!
最后,当然还有纯C语言的,来解析 YAML 1.1 数据,其编译估计差不多,下载URl:
http://www.oschina.net/p/libyaml
建议用eclipse来开发C++,还有PHP,因为eclipse 有PHP的插件,也有C++的插件,我是用的Zend for eclipse,现在eclipse还有一个Yaml的编辑插件,相关介绍情况如下:
安装YEdit
YEdit是一个在Eclipse上编辑YAML文件的插件。当我们我们使用Python进行App Engine的开发,会涉及编辑一些YAML文件,这个插件提供了较好的支持。
这个还是通过Eclipse的更新管理器来完成安装,在对话框中的在Work with中输入http://dadacoalition.org/yedit,然后勾选该插件,然后不断下一步,稍等片刻,安装成功。
eclipse 下的PHP插件参考:http://chenling1018.blog.163.com/blog/static/1480254201012234015728/
[个人原创]VC6.0两大插件Visual Assist X Add-in和VC6LineNumber Developer Studio Add-in的下载安装过程。 VAssistX 常用快捷键。
Unix/LinuxC技术 jackxiang 2011-8-7 11:59
缘起:最近想学下C++,Linux下的C++,但苦于没有找到好的编辑器,经同事介绍,有同事在用source Insight,我也用过,近来发现scott用VC2008,还会自动提示,跳转什么的,好生羡慕,苦于没有安装源文件,只好在自己的VC6.0上整上同一套来学习下C++开发喽,听其他人都说:
VC6.0是一个不错的编辑器编译器,直至现在还有不少人有用它做开发的,XP系统是盗版的,再来个VC6.0是盗版的也无足轻重啦,但VC6.0不像source Insight 和CFree那样天生都具有提示功能,以及行号功能,但它也有它的优点,经过左右思考后结论如下:
1.代码字体很清晰,有条例,编译提示都有的,在这里没有问题,放到Linux下应该没太大问题,有问题再修改咯,主要是提高编码速度和质量才是,在哪个系统上跑不关心呗,不过Windows Server要钱,我提示下,Linux下运行Web CGI什么的可是免费的哇,微软的Server不是个人能买得起,听说是按连接数算,如果你还想买个Oracle那TMD可是按CPU数来算滴,这下TMD完了两家都帮做广告了。
2.能一键F5就能编译提示错误。【这个好像source Insight无,但中文字体显示让人觉得不舒服,但它自己带提示,而CFree有行号,也有编译mingw,但不大气,国产也需要注册,不注册也是盗版不是,没面子哇(你想说我很抠是吧,才100块钱注册费用都不给),我有个观点就是盗版全用一个公司的盗版得了,免得多家来找你就不好了,常言道:虱子多了不咬, 债多了不愁,就用一家,省得好几家找你,多事了不是?,何况你一个人用,微软尽管现在比起以前卖XP来说收入少了一点点,让人感觉是经营多少有点惨淡,最进我发现不是还有很多专利赚钱的嘛,听说手机上的专利钱一个手机都抽5美元不是,喔,原来瘦死的骆驼比马大,你这点小钱,So Little,再说当年八国联军火烧。。。扯远了,扯远了,不讲道理哈,打住。
3.就是现在VC6.0后有什么Visual2008等也出来了,微软估计都懒得理你,找你打官司真是无聊,爱死死一边用去吧:)
常用快捷键:
Alt + M:列出当前文件所有的函数
Alt + G:函数定义和声明的跳转
shift+alt+f:查找选定的内容,比VS2010自带的爽,不信你选定一个函数试试
Ctrl + J - 列出成员,仅包括代码提示
F3: 查找下一个
Shift+F3: 查找上一个
下载:
首先,来下载那个提示工具:
一个是在北邮的学校网上找了个最新破解版本的,
提示语法和函数的工具下载地,分Part1,Part2,分别URL如下,这个版本是1649,下面爱文的版本是1837:
http://bbs.byr.edu.cn/att/NetResources/44974/443
http://bbs.byr.edu.cn/att/NetResources/44973/488
当然也可以到Sina爱问下载,这个补丁Visual AssistX 10.6.1837安装文件和破解补丁打包下载 这个版本的VAX安装包直接支持所有的VS,包括VC6 VS2003 2005 2008 2010。
使用方法,URL是:http://ishare.iask.sina.com.cn/f/14588331.html
再次,是下载那个行号工具,后来的行号提示工具是在Sina爱问上找到的,老东家爱问上确实有很多好东东,近来百度文库上也有好多好东东哇,这尽管是涉及到版权,确定有很多知识和学习的文档,不顶不赞,默默享用,Sina爱问行号显示的插件下载URL如下:
http://ishare.iask.sina.com.cn/f/11944905.html?retcode=0
安装:
第一个提示代码和函数语法的插件直接安好就是,好像有一个破解VA_X.dll的给覆盖到提示代码的安装目录下就行。
第二个行号安装如下:
1)拷贝:拷贝文件VC6LineNumberAddin.dll到
D:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns
2)注册:双击VC6LineNumberAddin.reg进行注册。
3)启用
打开vc6,菜单栏:Tools -> customize -> Add-ins and Macro Files
选中VC6LineNumber Developer Studio Add-in
后记:
在第3)中看到了那个提示插件,我估计是就是安装时它就帮你勾选了这个Visual Assist X Add-in啦。
最后,
有了这两个插件,后面开发效率上可能会有较大提高哇,我也是初学,还请大家帮我,有什么好学习C++的方法的给我留言,呵呵。
Add: 2014-01-13 visual studio 2008
回忆未来-向东-Jàck 下午 05:31:26
两个安上了,提示是怎么跳来着,当年我是用的vc6.0
scott 下午 05:32:17
安装后,有没有这个工具条
回忆未来-向东-Jàck 下午 05:32:29
有了,哈哈。
跳不动,是要做索引?
scott 下午 05:33:10
关了,重新打开一次,光标放到函数哪里,点击右上角的“Go”
回忆未来-向东-Jàck 下午 05:35:02
喔,好。
回忆未来-向东-Jàck 下午 05:36:30
O了,嘿嘿。
—————http://blog.renren.com/share/232211851/7847121738————
函数跳转
Alt + G:函数定义和声明的跳转
F12: 转到所调用函数或变量的定义
Alt + M:列出当前文件所有的函数
查找
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
替换
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
----------------------------------------------------------------
代码编写
----------------------------------------------------------------
Shift + Alt + Ente - 全屏显示
tt - 快速插入 _T()
Alt + Shift + Q:鼠标定位到函数名上,若是在h文件中,按此快捷键会弹出右键菜单,里面有个选项--创建定义;若是在cpp文件中,则按此快捷键会弹出右键菜单,里面 有一个选项--创建声明。 这在定义好接口之后,再来写实现时,配合Alt+O是非常快捷的。
Ctrl + R + E - 封装字段(VS 2008已经基本不需要该快捷键了,因为C# 3.0的自动属性 – Auto-Implemented Properties)
Ctrl + J - 列出成员,仅包括代码提示
Ctrl + Shift + Space - 参数信息
F7 - 跳转到窗体后置代码,WinForm中、WebForm中都可以
----------------------------------------------------------------
代码操作
----------------------------------------------------------------
Ctrl + K + C - 注释
Ctrl + K + U - 取消注释
Ctrl + ] - 寻找匹配的括号
Ctrl + Shift + ] - 选择匹配的括号与其中的代码
Ctrl + F - 快速查找
Ctrl + H - 快速替换
Ctrl + Shift + U - 转换为大写
Ctrl + U - 转换为小写
Ctrl + K + D - 设置文档格式
Tab - 增加缩进
Shift + Tab - 减少缩进
Ctrl + M + M - 折叠代码,例如将光标放在#region、if、方法头的位置,将会折叠它们
----------------------------------------------------------------
调试运行
----------------------------------------------------------------
F5 - 启动调试
Shift + F5 - 停止调试
F9 - 设置断点
Ctrl + Shift + F9 - 删除所有断点
F10 - 逐过程调试
F11 - 逐语句调试
----------------------------------------------------------------
项目的操作
----------------------------------------------------------------
Alt + Enter - 打开选定项的属性对话框
Ctrl + Shift + N - 新建项目
Shift + Alt + N - 新建网站
Ctrl + N - 新建文件
Ctrl + Shift + O - 打开项目
Shift + Alt + O - 打开网站
Ctrl + O - 打开文件
VC6.0是一个不错的编辑器编译器,直至现在还有不少人有用它做开发的,XP系统是盗版的,再来个VC6.0是盗版的也无足轻重啦,但VC6.0不像source Insight 和CFree那样天生都具有提示功能,以及行号功能,但它也有它的优点,经过左右思考后结论如下:
1.代码字体很清晰,有条例,编译提示都有的,在这里没有问题,放到Linux下应该没太大问题,有问题再修改咯,主要是提高编码速度和质量才是,在哪个系统上跑不关心呗,不过Windows Server要钱,我提示下,Linux下运行Web CGI什么的可是免费的哇,微软的Server不是个人能买得起,听说是按连接数算,如果你还想买个Oracle那TMD可是按CPU数来算滴,这下TMD完了两家都帮做广告了。
2.能一键F5就能编译提示错误。【这个好像source Insight无,但中文字体显示让人觉得不舒服,但它自己带提示,而CFree有行号,也有编译mingw,但不大气,国产也需要注册,不注册也是盗版不是,没面子哇(你想说我很抠是吧,才100块钱注册费用都不给),我有个观点就是盗版全用一个公司的盗版得了,免得多家来找你就不好了,常言道:虱子多了不咬, 债多了不愁,就用一家,省得好几家找你,多事了不是?,何况你一个人用,微软尽管现在比起以前卖XP来说收入少了一点点,让人感觉是经营多少有点惨淡,最进我发现不是还有很多专利赚钱的嘛,听说手机上的专利钱一个手机都抽5美元不是,喔,原来瘦死的骆驼比马大,你这点小钱,So Little,再说当年八国联军火烧。。。扯远了,扯远了,不讲道理哈,打住。
3.就是现在VC6.0后有什么Visual2008等也出来了,微软估计都懒得理你,找你打官司真是无聊,爱死死一边用去吧:)
常用快捷键:
Alt + M:列出当前文件所有的函数
Alt + G:函数定义和声明的跳转
shift+alt+f:查找选定的内容,比VS2010自带的爽,不信你选定一个函数试试
Ctrl + J - 列出成员,仅包括代码提示
F3: 查找下一个
Shift+F3: 查找上一个
下载:
首先,来下载那个提示工具:
一个是在北邮的学校网上找了个最新破解版本的,
提示语法和函数的工具下载地,分Part1,Part2,分别URL如下,这个版本是1649,下面爱文的版本是1837:
http://bbs.byr.edu.cn/att/NetResources/44974/443
http://bbs.byr.edu.cn/att/NetResources/44973/488
当然也可以到Sina爱问下载,这个补丁Visual AssistX 10.6.1837安装文件和破解补丁打包下载 这个版本的VAX安装包直接支持所有的VS,包括VC6 VS2003 2005 2008 2010。
使用方法,URL是:http://ishare.iask.sina.com.cn/f/14588331.html
再次,是下载那个行号工具,后来的行号提示工具是在Sina爱问上找到的,老东家爱问上确实有很多好东东,近来百度文库上也有好多好东东哇,这尽管是涉及到版权,确定有很多知识和学习的文档,不顶不赞,默默享用,Sina爱问行号显示的插件下载URL如下:
http://ishare.iask.sina.com.cn/f/11944905.html?retcode=0
安装:
第一个提示代码和函数语法的插件直接安好就是,好像有一个破解VA_X.dll的给覆盖到提示代码的安装目录下就行。
第二个行号安装如下:
1)拷贝:拷贝文件VC6LineNumberAddin.dll到
D:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns
2)注册:双击VC6LineNumberAddin.reg进行注册。
3)启用
打开vc6,菜单栏:Tools -> customize -> Add-ins and Macro Files
选中VC6LineNumber Developer Studio Add-in
后记:
在第3)中看到了那个提示插件,我估计是就是安装时它就帮你勾选了这个Visual Assist X Add-in啦。
最后,
有了这两个插件,后面开发效率上可能会有较大提高哇,我也是初学,还请大家帮我,有什么好学习C++的方法的给我留言,呵呵。
Add: 2014-01-13 visual studio 2008
回忆未来-向东-Jàck 下午 05:31:26
两个安上了,提示是怎么跳来着,当年我是用的vc6.0
scott 下午 05:32:17
安装后,有没有这个工具条
回忆未来-向东-Jàck 下午 05:32:29
有了,哈哈。
跳不动,是要做索引?
scott 下午 05:33:10
关了,重新打开一次,光标放到函数哪里,点击右上角的“Go”
回忆未来-向东-Jàck 下午 05:35:02
喔,好。
回忆未来-向东-Jàck 下午 05:36:30
O了,嘿嘿。
—————http://blog.renren.com/share/232211851/7847121738————
函数跳转
Alt + G:函数定义和声明的跳转
F12: 转到所调用函数或变量的定义
Alt + M:列出当前文件所有的函数
查找
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
替换
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
----------------------------------------------------------------
代码编写
----------------------------------------------------------------
Shift + Alt + Ente - 全屏显示
tt - 快速插入 _T()
Alt + Shift + Q:鼠标定位到函数名上,若是在h文件中,按此快捷键会弹出右键菜单,里面有个选项--创建定义;若是在cpp文件中,则按此快捷键会弹出右键菜单,里面 有一个选项--创建声明。 这在定义好接口之后,再来写实现时,配合Alt+O是非常快捷的。
Ctrl + R + E - 封装字段(VS 2008已经基本不需要该快捷键了,因为C# 3.0的自动属性 – Auto-Implemented Properties)
Ctrl + J - 列出成员,仅包括代码提示
Ctrl + Shift + Space - 参数信息
F7 - 跳转到窗体后置代码,WinForm中、WebForm中都可以
----------------------------------------------------------------
代码操作
----------------------------------------------------------------
Ctrl + K + C - 注释
Ctrl + K + U - 取消注释
Ctrl + ] - 寻找匹配的括号
Ctrl + Shift + ] - 选择匹配的括号与其中的代码
Ctrl + F - 快速查找
Ctrl + H - 快速替换
Ctrl + Shift + U - 转换为大写
Ctrl + U - 转换为小写
Ctrl + K + D - 设置文档格式
Tab - 增加缩进
Shift + Tab - 减少缩进
Ctrl + M + M - 折叠代码,例如将光标放在#region、if、方法头的位置,将会折叠它们
----------------------------------------------------------------
调试运行
----------------------------------------------------------------
F5 - 启动调试
Shift + F5 - 停止调试
F9 - 设置断点
Ctrl + Shift + F9 - 删除所有断点
F10 - 逐过程调试
F11 - 逐语句调试
----------------------------------------------------------------
项目的操作
----------------------------------------------------------------
Alt + Enter - 打开选定项的属性对话框
Ctrl + Shift + N - 新建项目
Shift + Alt + N - 新建网站
Ctrl + N - 新建文件
Ctrl + Shift + O - 打开项目
Shift + Alt + O - 打开网站
Ctrl + O - 打开文件
g++ lianbiao.cpp
阅读全文
阅读全文
摘要:困扰了我N久的问题,哈,作下记录。
快捷键调出下载管理器方法如下:
ctrl+j
----
其他答案没有试过哈:鼠标手势,或者把下载按钮添加到导航栏,或者personal menu添加进去,或者。。。,你要知道关闭了下载管理器还是会继续下载,除非你手动停止了下载。
快捷键调出下载管理器方法如下:
ctrl+j
----
其他答案没有试过哈:鼠标手势,或者把下载按钮添加到导航栏,或者personal menu添加进去,或者。。。,你要知道关闭了下载管理器还是会继续下载,除非你手动停止了下载。
通过其他程序或脚本在非交互式模式下调用top命令,经常会出现:
top: failed tty get 错误
解决办法:加个-b 选项皆可
-b : Batch mode operation
Starts top in <A1><AF>Batch mode<A1><AF>, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you<A1><AF>ve set with the <A1><AF>-n<A1><AF> command-line option or until killed.
例如执行:
top -bn 1
监控某个进程的状态:
top -bn 1 -p 14370 | grep cmdname>>stats.log
来源:http://phpor.net/blog/post/819/
用top命令看一下有下边四个进程吗?有的话ok了!(top -b -d 5)
fmsmaster fmsedge fmscore fmsadmin
别忘记打开linux的防火墙端口!!!!
top: failed tty get 错误
解决办法:加个-b 选项皆可
-b : Batch mode operation
Starts top in <A1><AF>Batch mode<A1><AF>, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you<A1><AF>ve set with the <A1><AF>-n<A1><AF> command-line option or until killed.
例如执行:
top -bn 1
监控某个进程的状态:
top -bn 1 -p 14370 | grep cmdname>>stats.log
来源:http://phpor.net/blog/post/819/
用top命令看一下有下边四个进程吗?有的话ok了!(top -b -d 5)
fmsmaster fmsedge fmscore fmsadmin
别忘记打开linux的防火墙端口!!!!