linux
文章平均质量分 59
Segment fault
千万不要关注我,否则拉黑
展开
-
debian将用户添加到sudoers
debian安装的时候,是不像RHEL一样有“将该用户设置为管理员”的,所以安装完之后,执行sudo ......会出现xxxx不在sudoers中,网上大多数做法是修改/etc/sudoers文件,但是这种做法总觉得不完美,完美的做法是通过命令来设置#usermod -g sudo nereus原创 2017-08-09 20:10:27 · 1254 阅读 · 0 评论 -
linux下使用strlcpy和strlcat
strlcpy和strlcat是BSD的C库函数,glibc维护者一直拒绝将其加入,所以需要安装额外的包。函数原型:size_t strlcpy(char *dst, const char *src, size_t size);size_t strlcat(char *dst, const char *src, size_t size);描述:The strlcpy() fun...原创 2018-12-20 20:51:21 · 5662 阅读 · 0 评论 -
-1L和0U比较大小,32为系统和64位系统有何不同?
下文所有说法仅针对linux等long类型在32位和64位程序中,长度不一样的系统成立,因为WIndows系统long不论是32位还是64位,都是4字节。下面的程序在32位和64位下,会输出什么结果? 1 #include <stdio.h> 2 3 int main() 4 { 5 long la = -1l; 6 unsigned ...原创 2018-12-27 23:21:54 · 1850 阅读 · 0 评论 -
sizeof(char [])和sizeof(char *)等于多少?
下面的代码执行结果是多少? 1 #include <stdio.h> 2 3 int main(void) 4 { 5 char ca[] = {"123456"}; 6 char *pca = "123456"; 7 8 printf("sizeof(ca)=%d,sizeof(pca)=%d,sizeof(*pca)=...原创 2018-12-28 00:31:29 · 28097 阅读 · 1 评论 -
scnprintf()和snprintf()、vscnprintf()和vsnprintf()
写过Linux驱动或者内核态程序的人应该都知道,编译时会有这样一个警告:use scnprintf() instead of snprintf()为什么在编译驱动或者内核态程序的时候会有这个警告呢?据说因为snprintf()有很大内存越界的风险?在内核态,内存越界往往是灾难性的后果下面是从Linux内核源码中复制的一段snprintf()和scnprintf()的实现(内核版本:...原创 2018-12-24 22:59:20 · 8318 阅读 · 0 评论 -
为CentOS7编译升级GCC
CentOS7默认的GCC版本是4.8,不支持C++14,对C++11支持也不完善,编译时需要加上-std=c++11才能勉强支持C++11,所以对GCC来个升级。因为3.10的内核实在太老,加之GCC4.8和最新的GCC8.2代差太大,直接用GCC4.8编译安装GCC7或8是不能成功的,我选择了GCC6.5,6.5对C++11支持很完美,还支持C++14. 1、下载和解压源码 这里...原创 2018-12-30 20:25:27 · 6171 阅读 · 3 评论 -
php-fpm与nginx通信connect() to unix:/tmp/php-fpm.sock failed (13: Permission denied) 的解决方法
nginx返回404,log文件错误信息如下2018/12/30 06:32:32 [crit] 9418#9418: *5 connect() to unix:/tmp/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: local...原创 2018-12-30 20:27:42 · 9369 阅读 · 1 评论 -
CentOS7编译内核安装与卸载
一、编译安装1、下载内核源码从https://www.kernel.org/下载longterm 4.14源码mainline: 4.20 2018-12-23 [tarball] [pgp] [patch] [view diff] [browse] stable: 4.19.13 2018-12-29 ...原创 2018-12-31 22:28:59 · 2486 阅读 · 0 评论 -
解决SELinux导致的nginx 403
只需两个命令chcon -R -u system_u /webdir/chcon -R -t usr_t /webdir//webdir/为nginx web目录原创 2019-01-05 22:53:05 · 801 阅读 · 0 评论 -
firewalld允许nginx\apache\mysql通过
1、查看当前运行的service#firewall-cmd --list-services2、列出支持所有的服务名称#firewall-cmd --get-services由于输出结果太多,最好搭配grep xxx使用3、允许服务通过#firewall-cmd --add-service=mysql 本次有效,重启失效#firewall-cmd --permane...原创 2019-01-05 23:09:04 · 1339 阅读 · 0 评论 -
CentOS7开机Failed to start Crash recovery kernel arming
I'm having CentOS 7 64 installed on my NUC. After compiling and upgrading the kernel to version 4.14, I am getting below error while booting the CentOS 7:Failed to start Crash recovery kernel armin...原创 2019-02-14 22:25:38 · 11741 阅读 · 2 评论 -
gcc编译-m32、-mx32有什么区别
先来看看gcc官方手册吧These ‘-m’ switches are supported in addition to the above on x86-64 processors in 64-bitenvironments.-m32-m64-mx32-m16-miamcu Generate code for a 16-bit, 32-bit or 64-bit enviro...原创 2018-12-19 23:09:49 · 8725 阅读 · 0 评论 -
Windows系统,VS和GCC下各种数据类型大小的比较
两个编译器一个是VS2015,一个是MinGW64(GCC6.3) #include <iostream>using namespace std;int main(){ cout<<"Size of char="<<sizeof(char)<<endl; cout<<"Size of pointer="&am原创 2017-03-15 12:54:44 · 3207 阅读 · 0 评论 -
CentOS编译opencv
在没安装图形界面的linux系统中编译安装opencv下载解压源码创建build目录第3步别忘了最后的两个点mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=Release -D BUILD_EXAMPLES=OFF -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=O...原创 2018-11-28 22:55:05 · 599 阅读 · 0 评论 -
为树莓派3b+编译64位内核
1、从github上下载内核源码github地址https://github.com/raspberrypi/linux$git clone --depth=1 -b VERSION https://github.com/raspberrypi/linux.git其中VERSION替换为对应的版本号,比如rpi-4.14.y2、configure$make ARCH=arm64...原创 2018-08-05 14:22:29 · 3085 阅读 · 3 评论 -
为树莓派3b+移植64位debian
系统我已经移植好了,百度云:链接:https://pan.baidu.com/s/1-lZK54ogBH9zhBG2pJb2Kg 密码:4ca7主要信息:1、内核版本:Linux debian 4.17.11-v8+ #1 SMP PREEMPT Sat Aug 4 11:50:39 CST 2018 aarch64 GNU/Linux2、debian版本:Debian GNU/Lin...原创 2018-08-05 14:24:11 · 2067 阅读 · 0 评论 -
树莓派检测ip脚本
在树莓派上运行web服务器,但有时候开机完网络没有启动成功,需要重启networking服务,所以写了一个脚本来检测IP是否为192.168.x.x,如果不是则重启networking#!/bin/bashwhile truedo IP="$(ip addr show eth0|grep "inet\b"|awk '{print $2}')" VAL_C...原创 2018-08-06 23:50:15 · 455 阅读 · 0 评论 -
epoll的用法
示例如下:#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/epoll.h>#incl原创 2018-10-01 22:58:31 · 234 阅读 · 0 评论 -
父进程退出之后,子进程会发生什么?
在linux中,所有进程都有一个共同的父进程systemd,如果父进程退出了,子进程还没运行结束,子进程会被systemd(老版本的linux是initd)收养下面用一个小程序来验证一下:#include <cstdio>#include <sys/types.h>#include <unistd.h>#include <errno.h&g...原创 2018-10-03 15:27:37 · 10913 阅读 · 0 评论 -
Shell统计词频
写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见,你可以假设:words.txt只包括小写字母和 ' ' 。 每个单词只由小写字母组成。 单词间由一个或多个空格字符分隔。示例:假设 words.txt 内容如下:the day is sunny the thethe sunny is is你的脚本应当输出(以词频降序排...原创 2018-10-11 22:26:53 · 1430 阅读 · 0 评论 -
kqueue的用法
The NetBSD Project”Of course it runs NetBSD” 本文翻译自:http://wiki.netbsd.org/tutorials/kqueue_tutorial/ NetBSD Wiki/tutorials/kqueue tutorial目录I、简介II、kqueue APIkevent 数据结构pair flags ...原创 2018-10-12 20:53:04 · 4547 阅读 · 0 评论 -
kqueue示例
kqueu的两个例子:1、完全以IO复用的方式读入标准输入流数据,输出到标准输出流中#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <sys/event.h>#include <errno.h&g...原创 2018-10-12 20:59:32 · 955 阅读 · 0 评论 -
arm下堆和栈的增长方向
通过gdb调试下面的程序,观察运行于ARM的Linux系统中,heap和stack的区别#include <cstdio>#include <cstring>struct MyStr{ unsigned char ch[128]; MyStr() { memset(ch,0x01,128); }};int main(){ MyStr *p...原创 2018-10-14 21:53:04 · 2942 阅读 · 0 评论 -
arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别
在下载gcc for arm的时候,往往会有很多个版本:这些版本的区别是什么?我该下载哪个版本?区别无外乎几个:大端 or 小端、ARMv7 or ARMv8、32位 or 64位、裸机 or 嵌入式Linux multiarch name syscall ABI instruction set endian...原创 2019-03-10 15:47:39 · 16562 阅读 · 3 评论