
linux 编程
文章平均质量分 63
zdg_c
这个作者很懒,什么都没留下…
展开
-
vi编辑文档上下键乱码处理
vi 编辑器上下按键乱码处理1.新装ubuntu 系统在使用vi 编辑器编辑文件时,在使用编辑模式时,按上下键出现乱码像出现:D A C 这些字母,退格键(Backspace)使用不了,网上查询处理方式,特此记录下。处理方法很简单:修改下/etc/vim/vimrc.tiny 文件即可。注意:要在root 模式下,所以我这临时使用了下sudo,此时的vi 上下按键还没能正常使用,所以编辑器我用gedit.sudo gedit /etc/vim/vimrc.tiny~/c_project/tiny原创 2022-01-12 19:47:55 · 2219 阅读 · 0 评论 -
函数isspace()用于判断字符是否为空字符
isspace() checks for white-space characters. In the "C" and "POSIX" locales, these are: space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v').函数int isspace ( int c..原创 2020-07-26 15:42:03 · 562 阅读 · 0 评论 -
Linux 进程间通信之消息队列
//send.c#include<stdio.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<errno.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include &l.转载 2020-06-23 23:38:29 · 315 阅读 · 0 评论 -
Linux之软件不同安装方法与卸载方法
目前个人所学到的Linux 中软件安装方法有如下二种(本人使用的是ubunt 系统):1.使用命令直接安装编译好的软件:apt-get install xxx2.源码安装下面对二种安装的卸载方式分别做个介绍。以axel 为例。1.使用命令直接联网安装;//安装axelapt-get install axel//卸载axelapt-get remove axel2.使用源码安装,下载源码:https://sourceforge.net/projects/axel2/解压进入源码目录后,原创 2020-05-24 13:50:48 · 459 阅读 · 0 评论 -
Linux 下iptables自定义链简单操作
1.查看规则iptables -nLroot@ubuntu:/# iptables -nLChain INPUT (policy ACCEPT)target prot opt source destination DROP icmp -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT)target prot opt sourc原创 2020-05-20 23:22:07 · 1289 阅读 · 1 评论 -
Ubuntu16.04版安装VMwareTools的步骤和没法挂载目录问题的解决方法
https://blog.youkuaiyun.com/kulala082/article/details/67635198转载 2020-05-19 10:45:03 · 811 阅读 · 0 评论 -
linux编程之socket TCP
例程实现LINUX SOCKE TCP 简单通信(1)服务端接受客户端的信息,并将接受信息发回客户端。(2)客户端运行时指定服务端地址,进行连接。(3)客户端断开口,服务端判定客户端无信息发送,继续等待下一个连接。//server.c#include <unistd.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/types.h>#incl原创 2020-05-17 21:58:47 · 509 阅读 · 0 评论 -
Linux 编程之解决Address already in use 问题
我在编写服务端程序时,结束服务器端程序运行后,再次启动程序,bind函数就会返回address already in use这个错误,提示我端口已经被占用了。使用 # netstat –apn | grep [port] 命令或者 lsof -i:[port] 命令查看端口的占用情况,可以发现之前被终止的服务器端程序进程仍在监听该端口。于是用kill命令杀掉再启动就可以正常运行了。后来在这篇文章找到了原因http://www.ibm.com/developerworks/cn/linux/l-sockpi转载 2020-05-17 02:45:45 · 2210 阅读 · 0 评论 -
linux 编程之stat 获取文件信息
Linux 下有如下API 可以用来获取文件相关信息,譬如文件大小,修改时间等; #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *pathname, struct stat *b...原创 2020-04-28 00:54:33 · 487 阅读 · 0 评论 -
Linux 编程之文件操作
本用例简单联系Linux 下文件操作测试,基本过程是:运行程序打开指定文件;将buf_write数据写进文件;将文件数据读取到buf_read;最后打印出读取到文件。//read.c#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcnt...原创 2020-04-27 01:36:32 · 209 阅读 · 0 评论 -
Linux 编程编译之宏选择代码编译 -D
1.在代码编译时可以在GCC 编译使用-D参数指定宏编译需要编译的代码段。譬如a.c代码中有如下预定义:#ifdefine OS_LINUX…代码段1#else…代码段2#endif当使用:gcc a.c -DOS_LINUX 编译时选择执行代码段1当使用:gcc a.c 编译时 选择执行代码段2如下是实例:`//suppot.c#include<stdio.h...原创 2020-04-24 00:28:04 · 1471 阅读 · 0 评论 -
linux进程通信之无名管道pipe
Linux 下进程通信称为IPC,共有如下几种方式:半双工管道(无名管道)FIFO(有名管道)消息队列信号量共享内存半双工管道通信(无名管道)适用于父子进程等有亲缘关系的进程通信。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#inc...原创 2020-03-26 01:49:26 · 223 阅读 · 0 评论 -
linux关于系统调用源码查找
摘自:https://zhidao.baidu.com/question/1888780400276062188.html问题:经常需要在内核中查找系统调用的定义,比如sys_waitpid,如何快速找到呢?解决:1、在老版本内核中,系统调用通常定义为sys_*,所以可以直接通过相关符号查找。2、但新版本中,系统的调用方式不同,采用了SYSCALL_DEFINE的定义方式,由于各系统调用...转载 2020-01-05 13:31:56 · 1175 阅读 · 2 评论 -
window 和虚拟机通过tftp实现文件传输
刚好今天想用tftp 实现window 和虚拟机里的ubuntu实现文件传输。之前看了些博客,方法挺多的,samba ,ftp ,tftp, 用tftp试下,记录下操作备忘。把文件从Window 下载到Ubunt 里。1.window电脑首先有tftp 服务软件tftpd64(我的是64位电脑),并运行,选中window 电脑ip 作为服务器ip和需要下载文件所在目录。(我的刚好放在桌面...原创 2019-11-28 19:41:51 · 1736 阅读 · 0 评论 -
linux之文件压缩解压
原文网址:http://zhidao.baidu.com/question/90378903.htmltar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的...转载 2019-07-01 00:16:57 · 216 阅读 · 0 评论 -
全局变量局部变量
局部变量:定义在函数体内的变量,函数调用时才分配存储空间,函数调用结束时释放空间全局变量:定义在函数体外的变量,程序运行时就分配存储空间,程序运行结束时释放空间...原创 2019-07-01 00:15:17 · 111 阅读 · 0 评论 -
Linux之man手册
Man Page是Linux开发最常用的参考手册,由很多页面组成,每个页面描述一个主题,这些页面被组织成若干个Section。FHS(Filesystem Hierarchy Standard)标准规定了ManPage各Section的含义如下:表 3.1. Man Page的SectionSection 描述1 用户命令,例如ls(1)2 系统调用,例如_exit(2)3 库函数...转载 2019-06-29 23:55:35 · 141 阅读 · 0 评论 -
linux 之卸载已安装低版本gcc
rpm -q gcczdg@localhost gcc-build-4.8.2]$ rpm -q gccgcc-4.4.7-23.el6.x86_64[zdg@localhost gcc-build-4.8.2]$sudo rpm -e gcc-4.4.7-23.el6.x86_64zdg@localhost gcc-build-4.8.2]$ sudo rpm -e gcc-4.4....转载 2019-06-12 12:46:29 · 11270 阅读 · 0 评论 -
linux c简单实现cp 命令
想通过c语言简单实现cp 命令,基础原理是;1.判断输入参数源文件和目标是否为空2.分别使用open()系统调用打开源文件,目标文件不存在则创建目标文件3.用read()调用将源文件内容读到缓存buf中,再调用write()函数把buf内容写到目标文件里。注意:在验证中出现read()返回值一直是1,而不是具体读到的字节数,后来查阅资料发现是优先级问题导致:https://www.cnb...原创 2019-05-29 09:28:43 · 1902 阅读 · 1 评论 -
linux c 实现简单链表功能
刚好像学习下数据结构,所以就找了些资料写了个简单单链表,有错误的地方还望大神指正。链表是物理上存储不连续的数据结构,通过链表节点关联下一个链表节点,它与数组不同,数组存储在物理上是连续的。链表节点包含:节点数据域和节点后继指针域(图分析后面补上)#include<stdio.h>#include<malloc.h>#include <errno.h>...原创 2018-06-05 00:47:11 · 1634 阅读 · 0 评论 -
linux c 实现网络状态检测
网上看了些帖子,按自己实际情况写了下,做个笔记。在我系统中网卡eth0 目录如下:检测网络状态是可以根据里面的配置值:up 或down 判断网卡是否启用。源码贴出如下:#include <string.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <net/if.h>#incl...转载 2018-06-06 14:29:51 · 11965 阅读 · 1 评论 -
linux c 信号处理例程
#include<stdio.h>#include<stdlib.h>#include<signal.h>#include<sys/types.h> //信号函数1 crtl+cvoid test1(int sign) { printf("SIGINT IS SEND\n"); //return 0;}int mai...原创 2018-06-06 15:46:17 · 413 阅读 · 0 评论 -
linux c 之静态库编写
linux 静态函数库在编译时试一起编译进程序里的.静态库是libXX.a命名的。下面是学习中一个静态库的编写学习;1.在我编写测试的程序中包含如下几个文件:main.c test1.c test2.c mytest.h其中main.c 为主测试程序, test1.c 和test2.c 分别为包含两个测试函数的文件,mytest.h 为两个测试文件函数声明,具体内容见下:/*test1.c*/...原创 2018-06-09 12:45:07 · 1186 阅读 · 0 评论 -
linux 之xml 解析读取
原博文:https://www.cnblogs.com/catgatp/p/6505451.html下载地址:ftp://xmlsoft.org/libxml2/下载libxml2文件后,解压改文件,然后进入解压文件进行编译安装,编译安装命令如下;./configuremakemake install如果在编译时遇到python 库的缺失,用下面命令安装再编译即可:sudo yum -y ins...转载 2018-06-10 09:51:05 · 11291 阅读 · 1 评论 -
linux c之主机信息获取
在linux 系统中,有时想获取到主机相关信息,系统提供了相关API 的调用,查询man 手册,可以使用如下两API 获取系统主机相关信息gethostname()和uname();下面用这两个API 获取相关主机信息#include<stdlib.h>#include<unistd.h>#include<stdlib.h>#include<sys/...转载 2018-06-30 18:55:33 · 956 阅读 · 0 评论 -
Linux C 之动态库加载
Linux 可以在程序运行时加载动态库,具体操作如下:程序需要包含头文件#include<dlfcn.h>该头文件包含dlopen(), dlerror(), dldlsym() ,dlclose()函数API 用于加载动态函数库的相关操作。 #include <dlfcn.h> void *dlopen(const ch...原创 2018-07-29 01:14:12 · 2943 阅读 · 0 评论 -
Linux之获取主机信息
Linux 提供了相关API 用于获取系统主机相关信息获取网络名称:int gethostname(char*name,size_t len)参数char*name:获取到的网络名字会写入name字符串中size_t len:该字符串至少有len 个长度返回值:成功时返回0,失败时返回-1AME gethostname, sethostname - ge...原创 2019-01-13 03:01:49 · 1025 阅读 · 0 评论 -
Linux编程之获取每台主机的唯一标识
Linux 编程中可以用API 获取主机的唯一标识,许可证管理者也会用此来保证相关程序只在拥有合法许可证的机器上运行。 #include <unistd.h> long gethostid(void); AME gethostid, sethostid - get or set the unique identifier of the current...翻译 2019-01-13 04:00:07 · 13334 阅读 · 2 评论 -
Linux 之log 日志记录
在Linux 中可以用syslog 函数向系统日志文件中写入日志记录,日志记录正常在/var/log/messages文件里,在syslog使用时在哪里需要记录日志的地方调用该函数即可。 openlog用于指定些特定log 输出,譬如用来制定日志由那个程序产生。 #include <syslog.h> void openlog(const char *id...翻译 2019-01-15 01:18:41 · 2452 阅读 · 0 评论 -
git 错误解决之源码编译安装
转载自:https://blog.youkuaiyun.com/shixiaoxiao2016/article/details/79925550作者:施小小第一种报错:fatal: HTTP request failed解决一:执行#git config --global http.sslVerify false解决二:由于Git的版本太低导致,更新Git版本即可。...转载 2019-03-26 18:59:41 · 1095 阅读 · 0 评论 -
linux 编程之gettimeofday函数
原博客地址:https://www.cnblogs.com/xiaojianliu/p/8477461.html(1)gettimeofday函数,它可以返回自1970-01-01 00:00:00到现在经历的秒数(2)可以用gettime 函数来计算程序之间执行的时间gettimeofday函数原型如下: #include <sys/time.h> ...转载 2019-05-06 00:16:27 · 1001 阅读 · 0 评论 -
linux c编程之静态库与动态库
一、linux操作系统支持的函数库分支 静态库:libxxx.a,在编译时就将库编译进可执行程序 优点:程序的运行环境中不需要外部的函数库 缺点:可执行程序大 动态库:又称共享库,libxxx.so,在程序运行时将库加载到可执行程序中 优点:可执行程序小 缺点:程序的运行环境中必须提供相应的库 函数库目录:/lib /usr/lib...转载 2019-05-08 19:18:25 · 497 阅读 · 0 评论 -
韦东山嵌入式
资源:https://eyun.baidu.com/s/3b1UtLc转载 2019-05-08 23:15:16 · 937 阅读 · 1 评论 -
解决lede编译中的“xdialog/checklist.o: undefined reference to symbol ‘acs_map’”问题
编译openwrt时总提示:root@localhost openwrt]# make menuconfigmake -s -C scripts/config all CC=cc: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going onm...转载 2019-06-12 15:09:25 · 1651 阅读 · 0 评论 -
linux MYSQL 编程
在linux里面安装了通过mysql :yum install mysql-server 安装完成后,在编程编译时发现找不到对应mysql.h头文件。此时我们只要在安装一下:yum install mysql-devel 就可以在usr/include/mysql里面找到mysql.h文件了。...原创 2018-06-03 02:39:38 · 1007 阅读 · 0 评论