
linux--编程
山西茄子
多媒体工程师,从事ffmpeg,gstreamer,视频编码,deepstream等开发,做做笔记。
展开
-
linux下错误的捕获:errno和strerror的使用
经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。 在程序代码中包含 #include ,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量转载 2013-08-21 10:24:59 · 742 阅读 · 0 评论 -
gdb调试
gdb调试1 要使用gdb,首先在编译时加入-g命令,如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。2 gdb启动启动GDB的方法有以下几种: 1> gdb program也就是你的执行文件,一般在当然目录下。 2> gdb co转载 2016-05-23 23:05:16 · 493 阅读 · 0 评论 -
Linux编程常用
获取时间#include Linux系统的日期时间头文件。比如:structtimeval tv;gettimeofday(&tv,NULL);ftime()。#include C/C++中的日期和时间头文件。比如: char strtime[1024] = {0};time_t now; struct tm *ptm; time(&now); ptm转载 2016-05-12 20:41:58 · 458 阅读 · 0 评论 -
文字转图片
安装第一步下载libjpeg库下载地址http://www.ijg.org/下载jpegsrc.v9a.tar.gz这个文件第二步解压这个文件第三步打开终端,切换到解压的目录执行./configure --prefix=/usr/local/--enable-shared --enable-static也可以根据需要添加其他库,如下: --with-zl原创 2016-12-08 16:34:21 · 1118 阅读 · 0 评论 -
管道
1. 函数说明pipe(建立管道):1) 头文件 #include2) 定义函数: int pipe(int filedes[2]);3) 函数说明: pipe()会建立管道,并将文件描述词由参数filedes数组返回。 filedes[0]为管道里的读取端 filedes[1]则为管道的写入端。4) 返回值: 若成转载 2016-10-17 15:54:15 · 379 阅读 · 0 评论 -
linux--操作文件
read函数(读取文件)read函数可以读取文件。读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用。使用格式如下:number = read( ...read函数(读取文件)read函数可以读取文件。读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用。使转载 2013-06-25 18:43:57 · 761 阅读 · 0 评论 -
Makefile文件的编写
目的: 基本掌握了 make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h (file1.c有main函数,引用file2里的打印函数)。 基础: 先来个例子: 有这么个原创 2012-08-10 13:12:29 · 910 阅读 · 0 评论 -
linux头文件与库
头文件的作用#include 网络头文件,如htonl,#include 定义了很多宏和open,fcntl函数原型。#include socket的定义,如:sockaddr_in。#include 有关线程的头文件。#include 有关信号量,比如:sem_t *sem_open(const char *name,int oflag,mode_t mo原创 2012-10-26 13:36:32 · 4401 阅读 · 1 评论 -
linux编译常见错误
make[1]: Warning: File `libbb/Makefile.in' has modification time 3.2e+04 s in the future 错误原创 2014-10-30 12:57:35 · 995 阅读 · 0 评论 -
epoll
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。1函数简介相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#de转载 2015-03-03 21:49:01 · 683 阅读 · 0 评论 -
linux下搭建gsoap环境
1.下载gSOAP下载地址为:http://sourceforge.net/projects/gsoap2。2 安装gSOAPa、解压zip压缩包命令:unzip gsoap_2.7.17.zip b、进入解压后生成的文件夹gsoap-2.7 命令:cd gsoap-2.7/ c、切换到root用户 命令:su 输入密码 d、配置编译环境 在gsoap-原创 2015-08-20 15:18:25 · 3564 阅读 · 0 评论 -
cgi例子
CGI实例--表单GET与POST示例GET方法:做一个加法运算,需要接收两个参数文件get.c如下:#include #include int main(void){ char *data; char a[10],b[10]; printf("Content-Type:text/html\n\n");转载 2014-03-07 09:54:44 · 3966 阅读 · 0 评论 -
Linux中创建静态库和动态库
一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。1.2库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点转载 2012-10-09 10:59:47 · 768 阅读 · 0 评论 -
linux---libcurl
安装下载地址:https://curl.haxx.se/download.html依次执行:configure,make,make install。例子// 采用CURLOPT_WRITEFUNCTION 实现网页下载保存功能#include ;#include ;#include ; #include ;#include ;#include转载 2017-11-14 18:48:02 · 330 阅读 · 0 评论