Linux C编程
IT山IT水
当你的能力没法实现自己的抱负时,请学习
展开
-
可变参的使用 va_list va_start va_end
本文由博主原创,转载请注明出处(保留此处和链接):IT人生(http://blog.csdn.net/ningxialieri/article/details/8981127) 最近在看glib相关的东西,想玩玩可变参,来定义一个自己的printf函数,在此做个小记录: 文件robin_printf.c$ cat robin_printf.c #incl原创 2013-05-27 18:18:18 · 1413 阅读 · 0 评论 -
深度理解C/C++的绝佳资料
在网上看到一个非常好的C/C++复习资料,有很多细节性的知识点,是绝佳的资料,在此给共享大家。原创 2013-10-31 20:50:16 · 1346 阅读 · 0 评论 -
Linux Shell命令的C语言实现
在此记录一些关于Linux Shell命令的C语言实现的函数和实例 :原创 2013-10-31 20:49:26 · 1639 阅读 · 0 评论 -
C/C++拾遗————空指针{NULL/0/(void*)0}与 空字符{null/'0'} 区别
突然对NULL与null的区别有点疑惑,在网上搜索了一下,查到下面的用法。其实很简单,就如博文标题,空指针可以是NULL,0或者(void*)0,空字符可以是null或者‘0’表示。翻译 2013-12-31 15:51:40 · 1664 阅读 · 0 评论 -
关于sqlite3在linux系统的应用
一次偶然的机会,用到了sqlite3开源数据库。当时要自己重新编译,获取源码过程有点纠结,现在在此做个记录,以备后用,也希望能帮助大家。 第一步:源码获取 链接一: sqlite3官网获取 链接二: 在官网上选择 Source Code——>sqlite-amalgamation-3080002.zip(后面的数字会因版本更新有所不同)原创 2013-12-12 21:46:03 · 2069 阅读 · 0 评论 -
函数的错误应用导致的致命错误(一)——strcpy
对一个coder来说,记录一些自己所遇到的错误及解决方法是很重要的,写此系列博文,以备后用,也希望对大家有所帮助。下面是我在调试一个程序是碰到的错误:错误log:F/libc ( 7081): @@@ ABORTING: invalid address or address of corrupt block 0x736ab1a8 passed to dlfree F/原创 2013-12-26 11:43:23 · 24762 阅读 · 1 评论 -
Unix高级编程实例编译方法
下载链接:http://www.apuebook.com/ 我这里下载2005版本编译平台:ubuntu 12.04把下载的 src.2e.tar.gz 复制到 ~/workspace/c_wspace/unix$ (这里改为你自己的工作目录),解压生成 apue.2e目录,进入后使用make linux 编译遇到问题:Q1:robin@ubuntu:~/原创 2014-02-10 22:44:09 · 2006 阅读 · 0 评论 -
linux下,动态库和静态库的编译方法(实例说明)
示例源码:robin@ubuntu:~/workspace/c_workspace/dynamic_static$ cat hello.c #include helloMCW(){ printf("Hello MCW!!!!!\n");}robin@ubuntu:~/workspace/c_workspace/dynamic_static$ cat main.c #原创 2013-06-21 11:07:41 · 1148 阅读 · 0 评论 -
gdb调试技巧(二)———— gdb 条件断点
本文由博主原创,转载请注明出处(保留此处和链接):IT人生(http://blog.csdn.net/robinblog/article/details/17652541)GDB是linux上的调试利器,是我们每个基于linux系统编程coder必须掌握的一门技术。在此记录一个使用gdb条件断点的小例子:gdb条件调试一般应用在循环、链表的遍历、或者其他变量的值可能被多次改变的场合。先上一个例子:gdb条件断点一般应用在循环、链表的遍历、或者其他原创 2013-12-29 12:24:54 · 32669 阅读 · 0 评论 -
ctags用法(一)——获取指定文件中的函数信息
使用ctags获取指定文件中的函数信息:原创 2013-10-31 20:49:53 · 2248 阅读 · 0 评论 -
c 函数滚动复习记录
2013/8/2strdup(字符串复制,自动为新字符串分配内存)toupper(字符小写 to 大写)原创 2013-08-02 11:41:46 · 1077 阅读 · 0 评论 -
收录一个拷贝文件的经典例子
#include #include #include #include #include #include #include #define BUFFER_SIZE 1024int main(int argc, char** argv,char** envpv){ int from_fd, to_fd; int bytes_read, bytes_write;原创 2013-07-31 10:40:03 · 1001 阅读 · 0 评论 -
使用c语言设置linux系统环境变量实例
使用c语言设置linux系统环境变量实例#include int main(){// setenv("QEMU_SO", "/home/robin", 0);// system("ls -l");// system("LINA=/home/robin");// system("echo $LINA" ); char * path = geten原创 2013-07-26 14:58:31 · 3386 阅读 · 0 评论 -
输出linux系统的所有环境变量实例
输出linux系统的所有环境变量实例:#include #include #include #include #include int main(int argc, char **argv, char **env){ printf("Hello!!!!!!!!!!!!!!!!!!!!!!\n"); int i=0; int fd = open("e原创 2013-07-26 13:58:12 · 2685 阅读 · 0 评论 -
strdup tolower toupper 实例
源码:robin@ubuntu:~/workspace/c_workspace$ cat lowerToUp.c/**************************************************** * strdup() toupper() tolower() 实例 * Robin * *****************************原创 2013-08-08 14:36:48 · 925 阅读 · 0 评论 -
getopt 實例
在學習pthread相關的函數時用到了getopt(),記得以前在在開源項目中也用到了,再次做個記錄,該例子來在於man 3 getopt 。用來獲取命令行的選項和參數,是個很好的例子:robin@ubuntu:~/workspace/c_workspace/thread$ cat opt.c#include #include #include int mai原创 2013-08-08 21:46:23 · 881 阅读 · 0 评论 -
pthread系列函数实例学习(一)
源码:robin@ubuntu:~/workspace/c_workspace/pthread$ cat thread.c/************************************************* * pthread_create() pthread_join() 实例 * * *************************************原创 2013-08-08 15:28:05 · 1267 阅读 · 0 评论 -
输出结构体中所有成员变量的值到文件
输出结构体中,所有成员变量的值到文件之中的小例子 #include #include #include #include #include struct st{ float f; char * a; char * b; char * c;};struct st st_var;int main(){ st_var.原创 2013-09-18 15:11:51 · 4435 阅读 · 0 评论 -
删除char*变量前后的空格
删除char*变量前后的空格 /*Delete the blank that is in char* varible* * TODO Robin*/#include #include #include char* eat_sp_mcw(char *src){ /* char * ori = strdup(src); char * des =原创 2013-09-18 15:21:29 · 2032 阅读 · 0 评论 -
关于perf的记录(一)————內核鏈表
perf中有個重要的數據結構,就是紅黑樹,其在linux內核中的遍歷方式比較特殊,在此做部份記錄: list_head 的定义(include/linux/types.h):/**************************************** * list_head结构包含两个指向list_head结构的指针prev和next, * 由此可见,内核的链表具备双链表原创 2013-09-23 09:43:18 · 923 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
转自:目录(?)[-]C语言宏定义连接符和符的使用 关于和关于的使用错误的嵌套Misnesting由操作符优先级引起的问题Operator Precedence Problem消除多余的分号Semicolon SwallowingDuplication of Side EffectsC语言宏定义##连接符和#符的使用 C语言中如何使用宏C(和C+转载 2014-08-29 16:17:44 · 859 阅读 · 0 评论