Linux下C编程
文章平均质量分 64
wendaotao
这个作者很懒,什么都没留下…
展开
-
UNIX环境高级编程中的apue.h错误
最近在读 Richard Stevens 的大作《UNIX环境高级编程》,相信很多初读此书的人都会与我一样遇到这个问题,编译书中的程序实例时会出现问题,提示 “错误:apue.h:没有那个文件或目录”。apue.h 是作者自定义的一个头文件,并不是Unix/Linux系统自带的,此头文件包括了Unix程序所需的常用头文件及作者Richard自己写的出错处理函数。所以在默认情况下,gcc在编译时转载 2012-04-26 11:17:10 · 962 阅读 · 0 评论 -
do...while(0)的妙用
do...while(0)的妙用在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...whi转载 2013-10-28 17:03:33 · 484 阅读 · 0 评论 -
define do{} while(0) 用法妙用
define do{} while(0) 用法妙用 2010-12-10 11:44 #define do{} while(0) 什么意思 #define do{} while(0) 为什么这么用 什么情况下用宏定义do{}while(0); 简单地说,就是能够实现复杂的定义,通用性强,任何情况下都适用转载 2013-10-15 11:24:42 · 2028 阅读 · 0 评论 -
数据模型(LP32 ILP32 LP64 LLP64 ILP64)
32位环境涉及"ILP32"数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作"LP64"数据模型。现今所有64位的类Unix平台均使用LP64数据模型,而64位Windows使用LLP64数据模型,除了指针是64位,其他基本类型都没有变。 TYPE LP32 ILP32转载 2013-08-15 17:10:07 · 2211 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系(转)
Sizeof与Strlen的区别与联系(转)1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函转载 2013-08-08 10:56:45 · 540 阅读 · 0 评论 -
GNU bash实现机制与源代码简析
GNU bash实现机制与源代码简析目录1. 概述1.1. bash1.2. 环境与工具2. 程序结构分析2.1. 系统架构2.2. 主要数据结构2.2.1. WORD_DESC与WORD_LIST2.2.2. COMMAND2.2.3. REDIRECT与REDIRECTEE2.2.4. VAR_CONTEX转载 2013-08-06 17:15:48 · 1235 阅读 · 0 评论 -
Linux下的C编程(打印函数)
Linux下的C编程(打印函数)原创 2013-06-24 22:36:59 · 1083 阅读 · 0 评论 -
Linux下的C编程(前言)
Linux下C编程(前言)很早就想自己写写Linux下的C编程,不管是按照书上的写下来,还是从网上摘抄下来,还是自己总结,写一下心得体会,都可以。总之,自己动手写一写,感觉这样既可以增强记忆,又可以温故知新。 所谓编程,其实就将API进行巧妙的组合,这种巧妙很多事体现在算法上。Linux下的API本人感觉有3种,1、系统调用;2、glibc库的函数;3其他程序曝露的API,原创 2013-06-24 22:19:02 · 807 阅读 · 0 评论 -
GCC 编译选项(转)
转载自http://blogold.chinaunix.net/u3/94700/showart.php?id=2340792警告和优化gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat转载 2013-05-17 10:48:49 · 1913 阅读 · 0 评论 -
Linux 段错误的产生和解决
转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段转载 2013-03-15 09:27:17 · 975 阅读 · 0 评论 -
将String转换为char *
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1.data如:string str="abc";char *p=str.data();2.c_str如:string s转载 2012-11-28 16:44:06 · 1097 阅读 · 0 评论 -
使用 GDB 调试多进程程序
GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:进程Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用转载 2012-11-28 08:53:39 · 1559 阅读 · 0 评论 -
Linux 利用宏和printf定义特殊的输出(转载)
在linux下,可以使用一些宏,加上自定义格式输出,让输出更易于调试:排版出来可能有些乱,注意do{ }while(0);是在一行里就可以了。#include #include #define DEBUG1( fmt, arg ... ) \ do{printf("[DEBUG] " fmt , ##arg ); }while(0);#define DEBUG2( fm转载 2012-11-01 09:43:45 · 3848 阅读 · 0 评论 -
linux下的C函数(持续更新中)
1、access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在). 总揽: #include int access(const char *pathname,int mode) 参数: pathname:表示要测试的文件的路径 mode:表示测试的模式可能的值有:转载 2012-09-28 16:54:24 · 1083 阅读 · 0 评论 -
Linux--线程编程
Linux--线程编程(转自http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html)进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换 线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多转载 2012-10-10 19:26:50 · 668 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP转载 2014-01-21 15:30:50 · 688 阅读 · 2 评论