[置顶]关于博主

首先感谢各位通过域名52coder.net 52murong.com访问本站。52murong.com 慕蓉是我女朋友的名字,她也是一名程序员,现在访问该域与52coder.net均会打开本站。

52coder.net是很早之前与同学一起脑洞的域名:中文名可以叫做-我爱程序员。我记得那年冬天孟非主持的非诚勿扰很火,我信誓旦旦的说以后要做一个网站,专门去为程序员解决个人问题,于是就有了现在的这个域名52coder.net。当时比较热衷于论坛,折腾过Discuz,在读书时折腾过,最多的时候同时在线人数超过1000,论坛的注册人数达到了2w左右,现在却早已忘记当初因为什么原因关闭论坛。

博客开始......

week-note-190108

touch命令

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

注意到touch命令是在youtube上的一个video,对一个存在的文件,使用touch命令将更新文件或者目录的时间属性。

[root@centos-linux-10 workspace]# ll -al

总用量 80

drwxr-xr-x. 3 root root 4096 12月 31 15:05 .

dr-xr-x---. 7 root root 4096 12月 31 15:05 ..

drwxr-xr-x. 2 root root ......

C++ primer 5th学习

由于最近工作中需要使用c++编写一个工具,趁元旦三天假期学习下c++的相关特性,浏览C++ primer 5th一书,这本当时4年前买的大块头的书,看新旧程度应该只看了100页左右😓。

编译c++程序

gcc可以对c/c++代码进行编译,g++可以对c++代码进行编译,gcc和g++在编译c++代码时,在预编译 编译阶段作用相同,在链接阶段g++会自动链接标准c++库,so,而gcc需要手动加上-lstdc++

完整的编译命令如下:

gcc -g -o execute example.cpp -lstdc++

使用gcc编译完整命令:

g++ -o prog1 prog1.......

webbench源码学习

源代码阅读前的相关知识点总结:

命令行参数

命令行参数解析

命令行参数学习

Linux相关知识

ldd

作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。

示例:查看test程序运行所依赖的库:

/opt/app/todeav1/test$ldd test

libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)

libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)

libgcc_s.so.1 =......

管道和FIFO

管道

管道由pipe函数创建,提供一个单向数据流。pipe函数返回两个文件描述符:fd[0]与fd[1],前者打开来读,后者打开来写。

管道的典型用途是在父子进程之前提供进程间通信手段。首先,由父进程创建一个管道,然后调用fork创建子进程。如果父进程关闭管道的读出端,子进程关闭管道的写入端。在父子进程间就形成了一个单向数据流。

通常我们在shell中输入一个像下面的命令时:

cmd1 | cmd2 | cmd3

将会创建三个进程和其中的两个管道。将每个进程的读出端复制到相应进程的标准输入,把每个管道的写入端复制到相应进程的标准输出。

一个管道的实现例子,来源于UNIX 网络......

七牛云失效

目前博客的写作方式为Makedown+图床方式,图床的话选择了七牛,前几天突然发现图片无法显示,参考如下链接七牛图片失效,将图床从七牛移动到github。

七牛有一点特别坑的是登录后台在后台无法下载图片,必须使用qrsctl命令行工具。而且我查找了邮箱,发现在域名失效前并未发送邮件通知,这真的是一个非常坑的处理问题的方法。参考上文链接中的方法,可以将图片下载到本地然后再上传到github。

脚本:

#!/bin/bash

#修改52coder为你的存储空间名,并将qrsctl与该脚本放在同一目录

imgs=`./qrsctl listprefix 52coder ''`

i......

week-note-181109

学习shell时学习了广为人知的fork炸弹

fork炸弹

GNU parallel官方文档

命令

find /usr/bin -type f -mtime +1 | xargs ls -alh | awk '{print $9}'

假如我们想要删除光标后的内容可以使用:CTRL + K,恢复的话使用CTRL + Y,如果想删除光标前的内容使用CTRL + U,CTRL+W删除光标前的一个单词直到遇到下一个空格。

使用上面的find命令可以测试上述快捷键。

CPU测试工具的使用:

Unixbench

awk入门教程

git官方文档

Linux top命......

GNU parallel

安装GNU parallel报错

因公司项目编译由串行修改为并行,因此学习GNU parallel知识,使用GNU parallel进行并行编译。

在下载了GNU parallel安装包,解压之后执行

./configure

make&&make install

结果提示如下错误:

[root@centos-linux-10 parallel-20171222]# make

CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /root/parallel-20171222/missing a......

使用addr2line定位程序崩溃位置

dmesg介绍

在介绍addr2line前需要学习下dmesg:

dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看(print or control the kernel ring buffer)。开机信息亦保存在/var/log/dmesg的文件里。

常用参数

格式:dmesg

查看开机信息。

格式:dmesg -c

清除开机信息,但/var/log/dmesg文件中仍然有这些信息。

实例一

dmesg消息重定向

dmesg >boot.me......

系统调用跟我学

系统调用跟我学

最近浏览到一篇不错的文章,略带有科普性质,原文链接:

系统调用跟我学一

系统调用跟我学二

系统调用跟我学三

系统调用跟我学四

coredump

最近在定位一个非必现的问题时存在一个认识错误,在linux中开启coredump的脚本如下:

#!/bin/bash

### Filename: coredumpshell.sh

### Description: enable coredump and format the name of core file on centos system

# enable coredump whith unlimited ......