- 博客(53)
- 资源 (24)
- 收藏
- 关注
原创 信号-linux
andrew@andrew-Thurley:~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15)...
2018-08-30 00:15:28 129
原创 system函数-linux
函数介绍: system - execute a shell commandSYNOPSIS #include <stdlib.h> int system(const char *command);DESCRIPTION The system() library function uses fork(2) to ...
2018-08-28 23:50:30 1400
原创 exec函数
调用exec函数之后,进程就不会返回了,直接在exec执行的函数执行结束后结束进程。 测试:#include <unistd.h> #include <stdio.h>#include <sys/types.h>#include <errno.h>#include <stdio.h>#includ...
2018-08-27 23:25:54 2398
原创 安装并配置ssh服务器
安装SSHsudo apt-get install openssh-server安装好后可直接启动,成功就可不进行下面的步骤:安装好后查看SSH是否启动输入sudo ps -e |grep ssh有sshd,说明ssh服务已经启动如果没有输入sudo service ssh startssh服务就会启动使用gedit修改配置文件/etc/ssh/sshd...
2018-08-26 19:44:54 8002
原创 配置ftp服务器亲测可用
环境ubuntu16.04安装vsftpd软件sudo apt-get install vsftpd 配置vsftpd.conf文件进入etc目录并备份配置文件cd /etc/cp vsftpd.conf ~/vsftpd.conf.bak进入编辑sudo vi vsftpd.conf确保Listen=YES anonymous_enable=NO...
2018-08-26 19:22:50 1715
原创 僵尸进程
子进程结束但是,内存没有完全释放就会编程僵尸进程;#include <sys/types.h>#include <errno.h>#include <stdio.h>#include <fcntl.h>#include <string.h>#include <stdlib.h>#include <...
2018-08-26 11:46:47 115
原创 linux中fork()函数与vfork()函数的区别
对于fork函数:子进程只继承父进程的文件描述表,不继承但共享文件表项和i-node父进程创建一个子进程之后,文件表项中的引用计数加1变为2,当父进程作close操作之后计数器减1,子进程还是可以使用文件表项,只有计数器减到0的时候才会释放该文件表项fork函数测试:#include <unistd.h> #include <stdio.h&...
2018-08-26 10:01:23 6599 3
原创 linux创建进程fork函数和vfork函数
#include <unistd.h> pid_t fork(void); #include <sys/types.h> #include <unistd.h> pid_t vfork(void);返回:子进程中为0,父进程中为子进程ID,出错返回 -1 fork创建...
2018-08-25 22:20:46 277
原创 在ubuntu上安装samba实现与windows的文件共享
参考韦东山的samba安装过程整理的自己的安装过程sudo apt install samba记得关闭自己的防火墙sudo ufw disable最新的稳定版本是4.5.3,发布于2016年12月19日。要检查您的Samba版本,请运行sudo smbstatus或者sudo smbd --version输出格式如下: Samba version 4....
2018-08-25 17:05:51 683
原创 vim中使用split
用split可以显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文件。这一切都可以通过分割窗口实现。如下图,左边的两个窗口是mytool.h和mytool.cpp 右边的两个窗口是commonfun.h和commonfun.cpp。同样的,也可以在阅读代码的时候查看配置文件,在调试的时候新开一个窗口,这个功能给我们带来的很多方便。在vim中输入命令vsplit ...
2018-08-25 12:44:55 724
原创 linux进程
程序:程序是存放在磁盘文件中的可执行文件;进程:程序的执行实例被称为进程; 进程具有独立的权限和职责,如果系统中一个进程崩溃它不会影响到其它的进程; 每个进程运行子啊各自独立的虚拟地址空间中,进程之间可以通过由内核控制的机制通讯;进程ID: 每个linux进程都一定有唯一一个数字标志符,成为进程ID(process ID),进程ID是一个非负的整数向内核登记终止终止进程的...
2018-08-25 11:56:30 122
原创 linux文件-link函数(文件硬链接和软连接)
创建硬链接的函数:相关函数:symlink, unlink头文件:#include <unistd.h>定义函数:int link (const char * oldpath, const char * newpath);函数说明:link函数中oldpath指定已经存在文件,newpath指定的名称建立一个新的连接(硬链接),若是newpath指定的文件已存在则不会...
2018-08-25 00:06:23 10227
原创 linux文件-access函数
access函数:access函数主要用于在使用文件之前获取文件的属性以免错误的使用文件的权限,造成文件读写过程中出错; #include <unistd.h> int access(const char *pathname, int mode);成功返回0,出错返回-1功能:检查是否可以对某文件进行某种操作 F_OK 值为0,判断文件是否...
2018-08-24 23:24:58 2054
原创 python不确定预测神器森林算法
import numpy as npimport pylab as plx=np.random.uniform(1,100,1000)y=np.log(x)+np.random.normal(0,.3,1000)pl.scatter(x,y,s=1,label="log(x) with noise")pl.plot(np.arange(1,100),np.log(np.aran...
2018-08-24 22:54:25 309
原创 STM32寄存器与输入捕获
以下来至原子教程 输入捕获模式可以用来测量脉冲宽度或者测量频率。 STM32 的定时器,除了 TIM6 和 TIM7, 其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的 边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT) 存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。
2018-08-24 22:53:59 795
原创 函 float *search(float(*pointer)[4],int n)
书本277页返回指针值的函数,调用函数输出一个学生的全部科目的成绩。 返回指针值函数的妙用#include int main() { float score[][4]={{60,70,80,90},{56,68,98,87},{34,65,87,90}}; float *search(float(*pointer)[4],int n); float *p;
2018-08-24 22:53:27 1253 2
原创 ARM Cortex-M3初探
ARM初探–aliasalias是为老函数,取一个新的名字! attribute关键字来描述函数,变量和数据类型的属性,用于编译器对源代码的优化#include &lt;stdio.h&gt; int __Hard_Fualt() { printf("my func = %s\n",__FUNCTION__); return 0; } int my...
2018-08-24 22:51:49 801
原创 智能指针类的编写
····································································································································· 1.指针在使用的过程中经常会遇到内存泄漏和内存多次被释放的 2.解决方案:例如使用Boost库的智能指针 在项目开发的过程中要
2018-08-24 22:51:31 304
原创 在ubuntu上安装wireshark之后提示Couldn't run /usr/bin/dumpcap in child process:权限不够
依次执行以下命令:sudo apt-get install libcap2-bin wiresharksudo chgrp xxxxxxx /usr/bin/dumpcapsudo chmod 750 /usr/bin/dumpcapsudo setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap将其中的 xxxxxxx ...
2018-08-23 07:49:59 3493
原创 linux常用命令
ln 创建硬连接ln -s 创建软连接(符号连接)示例:andrew@andrew-Thurley:~/work/filedir$ date > date.txtandrew@andrew-Thurley:~/work/filedir$ ln -s date.txt l_dateandrew@andrew-Thurley:~/work/filedir$ lsa.out ...
2018-08-22 22:15:53 1032
原创 mkfifo-建立命名管道
mkfifo是一个建立实名管道的函数创建命名管道的方法为:mkfifo pipe。这样就能创建一个命名的管道pipe。表头文件 #include<sys/types.h> #include<sys/stat.h>定义函数 int mkfifo(const char * pathname,mode_t mode);函数说明 mk...
2018-08-22 20:58:48 1609
原创 文件IO
#include <sys/types.h> #include <sys/stat.h> int stat(const char *filename //文件或者文件夹的路径, struct stat *buf //获取的信息保存在内存中); //! prototype,原型 正确返回0,错误返回-1其中使用到的结构体:...
2018-08-21 23:26:44 151
原创 sock使用UDP协议进行广播发送数据
使用ifconfig命令查看自己的广播地址:wlp3s0b1 Link encap:以太网 硬件地址 inet 地址:192.168.1.102 广播:192.168.1.255 掩码:255.255.255.0 可以看到主机的广播地址是192.168.1.255编写UDP服务器程序:#include &l...
2018-08-21 23:01:07 1805
原创 UDP高级编程广播
#include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void *optval, sockle...
2018-08-20 22:21:15 324
原创 DNS域名解析
struct hostent { char *h_name; //正式主机名 char **h_aliases; //主机别名,别名,字符串数组 int h_addrtype; //协议类型:IPV4-AF_INET int h_length; //网络地址大小,对于IPv4是四字节,即32位 char **h_addr_list...
2018-08-19 23:24:25 549
原创 基于UDP客户端服务器的编程模型-linux网络编程
坚持在代码中注释,边读代码边学习Linux网络编程使用到的发送函数原型: #include <sys/types.h> #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t len, int flags); ...
2018-08-19 12:53:28 462
原创 socket中使用多线程创建并发服务器
启动服务器:bin/echo_tcp_server_th 8888启动客户端:bin/echo_tcp_client 127.0.0.1 8888使用ifconfig命令可以看到电脑的换回地址是127.0.0.1 因为服务器和客户端在一台电脑上使用换回地址进行测试;lo Link encap:本地环回 inet 地址:127.0.0....
2018-08-18 21:17:19 1048
原创 getpeername函数与getsockname函数的介绍
getpeername函数用于获取与某个套接字关联的外地协议地址getsockname函数用于获取与某个套接字关联的本地协议地址 函数定义如下:#include<sys/socket.h> int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen); int getpe...
2018-08-18 20:25:50 6740 2
原创 linux线程随笔-pthread_create函数
函数简介 pthread_create是UNIX环境创建线程函数头文件 #include<pthread.h>函数声明 int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict_attr, void*(*start_rtn)(void*), void ...
2018-08-18 20:15:16 19798
原创 socket使用多进程实现并发的服务器
服务器测试效果:andrew@andrew-Thurley:~/work/network$ bin/echo_tcp_server 8888client: 127.0.0.1(55610) connectedstart read and write!namestart read and write!namestart read and write!客户端测试效果:an...
2018-08-17 22:10:21 1214
原创 不恰当使用read会造成服务器阻塞
可正常工作的tcp服务器:#include <netdb.h>#include <sys/socket.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <memory.h>
2018-08-15 23:31:26 622
原创 C++练习4
引用的本质就是给同一个内存空间起不同的名字#include using namespace std;int main(){ int a =10; int &b = a; b =20; //通过引用变量b和a指向同一个内存,改变b的值 就能够改变a的值 在这里虽然只是对b进行赋值// printf("a = %d\n",a); cout
2018-08-15 22:18:33 344
原创 使用socket创建服务器进程和客户端进程
TCP客户端和服务器创建流程在上篇博文中已经说明:TCP客户端服务器模型创建流程服务器进程#include &lt;netdb.h&gt;#include &lt;sys/socket.h&gt;#include &lt;unistd.h&gt;#include &lt;string.h&gt;#include &lt;stdio.h&a
2018-08-14 22:22:15 738
原创 bind函数详解
看看man手册:BIND(2) Linux Programmer's Manual BIND(2)NAME bind - bind a name to a socketSYNOPSIS #include <sys/types.h> /* See NOT...
2018-08-13 23:24:34 1704
原创 TCP客户端服务端编程模型
客户端调用序列调用socket函数创建套接字调用connect连接服务端调用I/O函数(read/write)与服务器端通讯调用close关闭套接字服务器端调用序列调用socket函数创建本地套接字调用bind函数绑定本地地址和端口调用listen启动监听调用accept从已经连接的队列中提出客户连接调用I/O函数(read/write)与客户端通讯调用close...
2018-08-13 23:11:34 1054
原创 inet_ntop函数和inet_pton函数
#include<arpa/inet.h>int inet_pton(int family, const char *strptr, void *addrptr); 返回:若成功则为1,若输入不是有效的表达格式则为0,若出错则为-1const char *inet_ntop(int family, const void *addrptr, char *strptr, size_...
2018-08-13 23:02:20 1117
原创 sockaddr与 sockaddr_in
留住因为很多系统调用必须使用这种结构struct sockaddr {unsigned short sa_family; /* 地址族, AF_xxx */char sa_data[14]; /* 14bytes的协议地址*/}; 上面是通用的socket地址,具体到Internet socket,用下面的结构,二者可以进行类型转换struct sockaddr_in {sho...
2018-08-13 22:43:09 157
原创 htonl、ntohl、htons、ntohs函数
htonl函数,将一个32位整数,由主机字节序转换为网络字节序。htons函数,将一个16位整数,由主机字节序转化为网络字节序 ntohl函数,将一个32位整数,由网络字节序转换为主机字节序。ntohs函数,将一个16位整数,由网络字节序转化为主机字节序htonl()--"Host to Network Long"ntohl()--"Network ...
2018-08-13 22:26:13 1859
原创 socket(套接字)详解一种通讯机制
socket给提供给使用进程TCP/UDP等网络协议进行网络通讯手段。 linux中网络编程通过socket接口实现; socket既是一种特殊的IO,提供对应的文件描述符。socket都有一个相关的描述{协议,本地地址,本地端口,远程地址,远程端口}(五元组信息);每一个socket有一个本地的唯一socket,由操作系统分配。#include &lt;sys/socket.h&gt;...
2018-08-13 00:31:27 2065
原创 网络分层模型OSI和TCP/IP四层模型
网络分层模型OSI和TCP/IP四层模型网络分层模型OSI和TCP/IP四层模型OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。...
2018-08-12 08:17:12 20076 2
The Robert C. Martin Clean Code Collection - Martin, Robert C-.m
2023-08-15
Technical Overview of LoRa and LoRaWAN-TÜV Rheinland
2023-08-15
Getting Started with LevelDB-Andy Dent
2023-08-15
Alice and Bob: A History Of The World’s Most Famous Couple
2023-08-07
福昕阅读器--linux最新版
2020-11-14
dbeaver-ce_7.2.4_amd64最新版本|dbeaver-ce_7.2.4_amd64.deb
2020-11-14
最新GeoLite2资源整合.zip
2020-10-03
C++基础课程讲义.pdf
2020-09-26
strtok的赞歌.pdf
2020-04-19
bsearch.zip
2020-04-18
RFC2616中文翻译-有待改进.odg
2020-01-15
Sqlite3.pdf
2019-06-30
GDB就该这样用
2019-05-04
IPC进程间通信
2019-05-03
在ubuntu上配置ftp服务器的说明文档,亲测可用(图片)
2018-08-26
自己参考网上的资源配置的vim编译器配置文件
2018-08-25
配置samba服务器的配置文件备份
2018-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人