linux编程
wonxxx
这个作者很懒,什么都没留下…
展开
-
包裹函数(wrapper function)
包裹函数其实就是封装函数,调用一个函数来实现这个功能。例子如下int Socket(int family, int type, int protocol){ int sockfd; sockfd = socket(family, type, protocol); if(sockfd == -1) {原创 2014-05-05 18:51:15 · 5180 阅读 · 0 评论 -
函数strdup()
说明 功能:将字符串拷贝到新建的位置处 注意:strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。原型char *strdup(const char *s);头文件:#include <string.h>返回值 返回一个指针,指向为复制字符串分配的空间。如果分配空间失败,则返回NULL值。实例#inc原创 2015-04-09 11:45:50 · 4256 阅读 · 0 评论 -
函数getopt_long_only()
第一次接触这个函数,是因为学习mjpg-streamer的源码。函数作用:对命令行选项进行解析。函数出处 头文件getopt.h中:#include <getopt.h>int getopt_long_only(int argc, char * const argv[], const char *optstring, con原创 2015-04-09 11:40:45 · 1155 阅读 · 0 评论 -
pthread_create如何传递两个参数以上的参数
涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程 定义一个结构体 struct mypara { var para1;//参数1 var para2;//参数2 } 将这个结构体指针,作为void *形参的实际参数传递 struct mypara pstru; pthread_create(&ntid, NU转载 2014-12-04 19:16:42 · 1091 阅读 · 0 评论 -
结构体转化成字符数组
昨天晚上在解决通过socket发送结构体的问题的时候,知道了可以将结构体先转化成字符串的形式再发送,但今天之前一直有个疑问没有解决(为了方便描述,去掉socket部分),首先看下代码:#include #include #include typedef struct info{ char name[5]; char num[10];}INFO;int main(){ I原创 2014-09-02 11:07:00 · 9158 阅读 · 4 评论 -
获取本机ip(有问题版)
想写一个获取本机ip的程序:原创 2014-08-30 11:19:59 · 1103 阅读 · 0 评论 -
获取本机ip(成功版)
参照网上用ioctl的SIOCGIFCONF方法获取本地ip成功,代码如下:#include #include /* for exit() */#include #include /* for socket() */#include /* for socket() */#include原创 2014-08-30 13:12:20 · 1616 阅读 · 0 评论 -
C语言实现对文件内容进行修改
项目中需要实现对文件内容进行修改,所以有了以下的测试程序,其中遇到了很多问题,在这一一记录下来。其实实现原理很简单,首先是要实现定位到所需要的字段的那一行,之后再对指定字段进行修改。在我接触了shell编程后,觉得shell编程会很容易实现(网上说可以用sed命令,还没接触过,有时间再弄弄)。但是由于C语言是面向过程的语言,需要顺序执行的特点,所以,实现中遇到了很多麻烦。首先,需要原创 2014-09-06 16:10:38 · 33727 阅读 · 4 评论 -
定时修改本机ip的脚本
因为测试需要,要写一个定时修改本机ip的程序,听说用shell编写比较简单明了,所以用shell写了(本人第一次用shell编程)。#!/bin/bash while truedoip_last=$((($RANDOM%255)+1))echo now ip is: 192.168.1.$ip_lastifconfig eth0 192.168.1.$ip_lastsl原创 2014-09-04 19:33:08 · 1954 阅读 · 0 评论 -
Dash与Bash的语法区别
如今Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准,下面简要列举下从bash迁移到dash一般需要注意的问题1.定义函数bash: function在bash中为关键字12345转载 2014-09-04 19:57:51 · 2968 阅读 · 0 评论 -
与时间相关的函数
做项目过程中,需要原创 2014-07-30 02:45:37 · 624 阅读 · 0 评论 -
linux stat函数讲解
stat函数讲解表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失败返回-1,错误代码存于errno错误代码:ENOENT 参数file转载 2014-07-27 01:48:03 · 619 阅读 · 0 评论 -
段错误bug的调试
我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难 免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个 内存访问越界的错误谈谈如何快速定位这些"段错误"的语句。下面将就以下的一个存在段错误的程序介绍几种调试方转载 2014-07-27 01:41:09 · 559 阅读 · 0 评论 -
提高 Linux 上 socket 性能
加速网络应用程序的 4 种方法使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets API,从而提高 Socket 的性能,或者限制 Socket 的性能。转载 2016-10-27 20:40:16 · 754 阅读 · 0 评论