- 博客(99)
- 资源 (9)
- 问答 (2)
- 收藏
- 关注
原创 C语言:数组
1.一维数组1.1 一维数组的定义 类型说明符 数组名[常量表达式];// int a[10]; 注:常量表达式中可以包括常量和符号常量,也就是说,C语言不允许对数组的大小做动态的定义,即数组的大小不依赖于程序运行过程中变量的值; 如下是不允许的:int n;scanf("%d",&n);int a[n];/* 在程序中临时输入数组的大小 ...
2018-08-21 22:20:13
1994
原创 C语言:switch多分支语句
switch语句是多分支语句,用来实现如下表示的多分支选择结构:switch(表达式){ case 常量表达式1: 语句1; break; case 常量表达式1: 语句1; break; case ...: ....; default: brea...
2018-08-20 23:51:43
11931
1
原创 编译工具的说明
编译工具包含以下工具:1.xxx-xxx-gcc:C/C++的编译器;2.xxx-xxx-nm:查看目标文件,可执行文件的符号列表和调试信息;3.xxx-xxx-ld:链接器;4.xxx-xxx-readelf:查看elf文件的信息5.xxx-xxx-objcopy:文件格式的转换,elf->二进制文件6.xxx-xxx-strip:删除目标文件或者可执行文件的符号列表和调试信息。7.xxx...
2018-07-04 23:33:17
4180
原创 c语言获取文件第n行数据
运行环境:ubuntu 64bit#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc, char const *argv[]){ /* code */ FILE *fin; char buf[1024]; int x,y; int i; fin...
2018-06-30 17:31:59
10190
1
原创 Ubuntu使用 ls 可以查看到执行文件,但执行却提示不存在
Ubuntu系统是 64 位的,而可执行程序是 32 位的,需要支持32位的运行库 ia32-libs,使用下面的命令: #apt-get install ia32-libs然而,结果提示已经被其它包代替了,那就根据指示来呗: #apt-get install lib32ncurses5 lib32z1下载完成后,完美执行程序。...
2018-06-30 17:18:42
4155
原创 获取本地ip,mac地址---Linux C
/*------------------------------------------------------------------- Filename : getLocalIP.c- CreateTime : 2018-05-28 17:15- Author : tobiu- Description : get ...
2018-05-28 17:25:27
1212
原创 linux C监控程序
需求: 编写一个监控程序,用于检测某个服务是否在运行,如果没有运行,则重新启动。/************************************************************* FileName :Monitor.c** Author : Tobiu** Description: 守护进程;** Date : Apr 18, 2018****...
2018-04-18 17:49:55
5652
原创 gitlab操作命令(Linux)
1.建立远程连接 1.1 初始化空目录 在本地创建一个空目录,cd进去后初始化: #git init //就会生成一个.git的隐藏目录。 1.2 远程抓项目放在这目录下(克隆) #git clone your'url //url为项目服务器地址或github地址 1.3 建立新的远程项目 #git remote ad...
2018-04-18 11:26:05
2408
原创 Linux 进程间通信的机制
Linux 下进程间通信的6种机制: 1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支...
2018-04-16 17:58:58
536
1
原创 udp server接收数据并发送数据
需求: .编写一个sever接收udp广播,如果有数据接收,就回应自己mac地址;(也可添加条件发送) .编写client用于测试;/***** server *********//*------------------------------------------------------------------- Filename : MyBroa...
2018-04-12 17:31:50
2718
3
原创 Linux C语言生成随机数
本文主要介绍2个函数:rand()和srand();1.rand()函数 是产生随机数的一个随机函数:#include <stdlib.h>int rand(void);return value: 为一个随机数值,范围咋0至RAND_MAX之间(定义在stdlib.h,如下) /* The largest number rand will return (sam...
2018-04-06 13:49:42
5610
原创 C语言学习笔记
1.网络编程1.1 TCP知识以及实例 -> socket通信1.2 UDP知识以及实例 -> udp发广播等待接收和发送数据1.3 http请求 参考资料:http传参get与post的误区和总结socket原理详解2.线程进程 1.Linux进程的6种机制...
2018-03-21 15:50:36
4379
1
原创 c++转为c程序
目前项目中,涉及到了把c++文件改为c文件,主要是c++跨平台存在问题,所以才需要这样做。特此记录。简说:1、C++兼容C语言,但C语言不可能兼容C++,所以,C++代码直接转是转不了C的。2、只能从逻辑上,对C++的许多语法进行代码上的重新实现。 比如将对象转换为结构体,将对象封装的函数修改为独立函数,增加对象参数。 将重载去掉,而是根据需要调用非重载的不同名的函数。 要将C+...
2018-03-20 09:12:41
25019
原创 c语言函数带可变参数
当您有时候希望函数带有可变数量的参数,而不是与定义数量的参数。c语言为 这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接收可变数量的参数。语法如下:int func(int ,...){ ...}int main(){ func(2,2,3); func(3,3,3,3);}!注意:func()最后一个参数是写成省略号,即三个点好(...),...
2018-03-15 14:29:28
543
原创 linux动态库的构建---借助cjson库
环境:ubuntu json库很简单只有一个.c文件和.h头文件,把它封装为动态库,方便给其它程序调用;特别注意的一点是:当静态库和动态库同名时, gcc命令将优先使用动态库。 下面就以cJSON库为例:1.动态库编译 ubuntu$ sudo gcc -shared -fPIC -o libjson.so cJSON.c -I. -lm -ldl -fPIC :表示...
2018-03-08 23:47:06
759
原创 C语言的静态库与动态库
1.什么是库 库是一种可执行代码的二进制形式,可以直接被操作系统载入内存执行。 通常我们会将一些常用的函数封装成一个库,提供接口给其它程序文件调用。这样一来,省去了重复写该函数接口。当我们使用该函数时,就可以直接将我们所需要的文件链接到我们的程序中,提高了开发效率。2.库的分类 linux下的库分为2种:动态库和静态库。 主要区别: @静态...
2018-03-07 23:32:57
2437
原创 ubuntu的sqlite3基本命令操作
1.登录 #sqlite3 文件路径2.查看表结构 >.dump table_name 3.更新表记录 > update vdevice set status=1 where id=1; 出现问题:attempt to write a readonly database。把目录和数据库文件的权限都设置为777。4.插入记录 >insert into <tab...
2018-03-07 14:29:48
1434
原创 socket发送udp广播包
#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include &am
2018-03-07 14:10:59
2515
原创 字符串右补零
想得到16位的数据进行加密,但时间戳获取到的是10位,要求是右补零,不能左补零。以下是一个自己尝试成功的例子:#include <stdio.h>#include <time.h>#include <string.h>int main(void){ time_t t; char buf[16]={0}; t =time(...
2018-02-09 00:18:51
2042
原创 C语言实现字符串的反转输出
#include <stdio.h>#include <string.h>#include <stdlib.h> void reverse(char *src){ if(src == NULL) exit(1); char * p = src + strlen(src) - 1; ...
2018-02-03 16:44:03
7745
原创 C语言结构体初始化
1 /* 2 ** test.c 3 ** 2018-1-30 4 */ 5 #include 6 7 struct studen{ 8 int id; 9 char *name; 10 int age; 11 }; 12 13 14 15 int main(void) 16 { 17
2018-01-30 18:23:45
273
原创 ubuntu 生成core文件
在ubuntu下,设置core dump文件的生成方法: 1.#ulimit -a//core file size 选项的值,如果为0,则说明系统并不能在段错误是生成core dump; 2.没有就只能自己动手了。不限制生成core dump文件的大小: #ulimit -c ulimited //open core dump 如果需要限制core文件大小: #ulim
2018-01-26 00:14:04
3997
原创 C语言进程与线程实例
#include #include #include #include int a=200;int b=100;pthread_mutex_t lock;//互斥锁的宏void ThreadA(void){ printf("线程A.....\n"); pthread_mutex_lock(&lock); a-=50;
2017-12-25 16:14:20
3897
原创 C语言socket通信实例
1.简要分析: socket分为服务端和客户端: .服务端监听端口发来的请求,收到后向客户端回应数据。 .客户端负责发送消息。2.创建步骤: 服务器:建立socket,绑定socket和地址信息,开启监听,收发数据。 客户端:建立socket,连接服务器端,收发数据。下面我们以TCP通信为例:/********...
2017-12-25 16:12:12
6482
原创 C语言连接mysql实例
#include #include "mysql.h"#include #include #include char qbuf[128]={0};int main(int argc,char **argv){ MYSQL mysql,*sock; MYSQL_RES *res;//存储结果 MYSQL_ROW row;//存放一行数据
2017-12-25 15:45:48
947
原创 编译安装简要说明(configure && make && make install)
configure/make/make install简要说明在Linux里编译安装软件会用到诸如configure/make/make install的命令,这些都是典型的使用GNU的autoconf和automake产生的程序的安装步骤。./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。m
2017-12-11 17:03:43
2372
原创 Makefile---简单模板
include xxx.mk #包含外部文件 CC=gcc #编译器CPPS=xxx.c #编译的c程序OBJ=xxx #目标CINC = -I. -I/xxx/include #头文件CFLAGS=-O0 -g -Wall #编译参数CLIBS=-L.
2017-12-11 15:12:34
293
原创 nmap帮助文档-参数说明
Nmap 7.60SVN(https://nmap.org)用法:nmap [扫描类型] [选项] {目标规格}目标规格: 可以通过主机名,IP地址,网络等 例如:scanme.nmap.org,microsoft.com/24,192.168.0.1; 10.0.0-255.1-254 -iL :从主机/网络列表中输入 -iR :选择随机目标 - 排除:排除主机/网络
2017-12-11 09:34:19
573
原创 C语言str系列函数
1.strlen函数/*** 计算一个字符串的长度 ***/size_t strlen(char *string){int length = 0;/* 依次访问字符串的内容,计算字符数,直到遇到NUL终止符 */while( *string++ != '\0')length += 1;return length;}/*** 这里简单的说明:strlen与
2017-12-03 23:59:41
11814
原创 未初始化和非法的指针
下面这个代码段说明了一个极为常见的错误:int *a;...*a = 12 ;这个声明创建一个名叫a的指针常量,后面那条赋值把12存储在a所指向的内存位置。警告:但是究竟a指向哪里呢?我们声明了这个变量,但从未对它进行初始化,所以我们没有办法预测12这个值将存储在什么地方。从这一点看,指针变量和其它变量并无区别。如果变量是静态的,它还被初始化为0;但如果变量是自动的,它根本
2017-12-03 23:44:10
405
原创 define与typedef
typedef,它允许你为各种数据类型定义新的名字。#define无法正确地处理指针类型,例如:#define pchar char *pchar a,b;正确的声明了a,但是b却被声明为一个字符。在定义更为复杂的类型名字时,如函数指针或指向数组的指针,使用typedef更为合适。
2017-12-03 19:13:29
204
原创 单用户加密
环境:Centos 6.6单用户加密,密码通过md5加密,添加到grup.conf文件中,当进入单用户时就会运行#grub-md5-crypt输入密码:再次输入密码:最后会生成一串加密的字符串,复制。#vi /etc/grup.conftimeout = 3添加一行:password --md5 xxxxxxx(字符串拷贝到这里)
2017-12-02 00:34:30
238
原创 清理vmware碎片
vmware虚拟机空间增大后,不会因为你删掉文件而减少,所以需要对其清理碎片。清理vmware碎片:在虚拟机里执行以下命令:#dd if=/dev/zero of=/0bits bs=20971520#rm /0bits注解: bs=:将ibs(输入)与欧巴桑(输出)设成指定的字节数; cbs=:转换时,每次只转换指定的字节数;conv=:指定文件转换的
2017-12-02 00:28:08
2271
原创 linux内核编译
环境:系统:Centos 6.6kernel:2.6.32-504过程详解:1.解压内核源码(/usr/src/kernel/),若提示没有xz命令,则#yum -y install xz2.进入内核源码目录,配置.config(可以安装ncurses,使用make menuconfig配置)/********************************
2017-12-02 00:22:03
306
原创 内核模块已打开,但开机未加载
环境:系 统: Centos 6.6内核版本: linux-2.6.321.vmware转qcow2格式,内核崩溃 最近做一个kvm的镜像,尽力裁小内核大小,从VMware格式转qcow2格式后发现内核进不去: 发现内核模块‘VIRTIO’相关选项都去掉了,重新设为‘y’编译:转了格式后,发现可以正常打开了。主要原
2017-11-27 23:21:39
2219
转载 /etc/inittab文件详解
原文地址:http://leejia.blog.51cto.com/4356849/788895Linux系统的启动过程为: 我们看到,Linux系统启动init进程过程中是怎么工作的呢?init进程就是根据/etc/inittab这个文件来在不同的运行级别启动相应的进程或执行相应的操作。 /etc/inittab这个文件中定义的登记项都是以
2017-09-21 21:28:43
11030
原创 hydra 官方使用文档
INTRODUCTION------------Number one of the biggest security holes are passwords, as every passwordsecurity study shows.This tool is a proof of concept code, to give researchers and securityco
2017-09-14 16:06:32
6961
原创 mysql数据库执行mysqladmin flush-hosts方法
当连接错误次数过多时,mysql会禁止客户机连接,这个时候有两个办法解决:1.使用mysqladmin flush-hosts命令清除缓存,命令执行方法如下:命令行或终端:mysqladmin -u root -p flush-hosts接着输入root账号密码即可 2.修改mysql配置文件,在[mysqld]下面添加 max_connect_errors=1000,
2017-09-12 16:08:00
833
通俗易懂的shell脚本指南
2018-08-23
google ie内核插件工具(chrome.r39.crx+ffactivex-setup-r39+实例)
2021-12-01
代码人生,不止代码
2018-08-02
C语言深度解剖
2018-08-21
[z-wave] 关于智能家居的情景功能的实现逻辑
2019-02-26
【hydra】如何提高扫描速度
2017-07-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅