C
文章平均质量分 57
微信公众号
Hello world
展开
-
C语言 将int型数据以二进制形式输出
#include #include int main(void){ printf("N="); int n,i; scanf("%d",&n); int len=sizeof(int)*8; //int型所占数据宽度 for(i=0;i { putchar('0'+((unsign原创 2012-12-28 16:43:00 · 18783 阅读 · 0 评论 -
unsigned 关键字,你真的懂了吗?
前不久和同事谈论起 unsigned 关键字,故今天小结一下。以32位机为例,int 分为无符号 unsigned 和有符号 signed 两种类型,默认为signed。二者的区别就是无符号类型能保存2倍于有符号类型的数据。32位下,signed int 的表示范围为:-2147483648 ~ 2147483647 (最高位做符号位)。unsigned int 的表示范围为:0 ~ 4294原创 2013-07-11 10:39:50 · 29664 阅读 · 2 评论 -
C语言函数返回值的相关问题
程序一:int main(){ int *p; int i; int*fun(void); p=fun(); for(i=0;i { printf("%d\n",*p); p++; } return 0;};int* fun(void){转载 2013-06-03 10:38:14 · 1634 阅读 · 0 评论 -
Linux XSI IPC 之共享内存
对于共享内存的知识点介绍,大家可以参阅下面这两篇文章:共享内存基础知识01共享内存基础知识02注意:如果在代码中没有手动删除,共享内存并不会随着程序的终止而自动清理!大家可以使用shell命令:ipcs -m 查看自己的共享内存区。效果如下图所示:其中:第一列就是共享内存的key;第二列是共享内存的编号shmid;第三列就是创建的用户owner;原创 2013-04-23 17:11:54 · 1426 阅读 · 0 评论 -
Linux 网络IPC 之套接字
Socket 通信,你我都懂的,今天写个小例子,采用的TCP通信方式。server.c#include #include #include #include #include #include #include #include #define SERVER_PORT 7758#define BUFFER_SIZE 128void my_err(char *);原创 2013-05-13 09:38:49 · 827 阅读 · 0 评论 -
C语言常见命名规范
1 常见命名规则比较著名的命名规则首推匈牙利命名法,这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。例如:lpszSt转载 2013-05-16 16:08:48 · 1102 阅读 · 1 评论 -
什么c语言中int的表示范围是-32768~32767
什么c语言中int的表示范围是-32768~32767 这得从二进制的原码说起: 如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767 最小为1111111111111111=-2的15次方减1=-32767 此时0有两种表示方法,即正0和负0:0000000000000000=1000000000000000=0 所以,二进制原码表示时转载 2013-05-16 17:07:45 · 1593 阅读 · 0 评论 -
Linux XSI IPC 之信号量
关于信号量的定义和系统调用,可以查看这篇博文:点击打开链接其中,注意一点就是:在编译信号量程序时,semctl 函数,其中一个参数是union semun 联合体。但是在编译时,union semun _semval; 这段声明联合体的代码却报错:storage size of '_semval' isn't known. 查看semctl手册,在Notes中可以看到这么一段:In some原创 2013-04-19 18:46:27 · 1448 阅读 · 3 评论 -
Linux XSI IPC 之消息队列
今天在学习XSI IPC 编程时,发现APUE上的消息队列这一章节讲解的很粗略,阅读两遍后仍是一头雾水。被逼无奈,只好求助百度。在查看了很多前辈们的文章后,终于有所领悟。其中,http://blog.csdn.net/zhsp1029/article/details/2171462 zhsp1029的博客讲解的很好,今天就以此文章为基础,加入一些自己的见解。对消息队列的操作有下面三种类型原创 2013-04-17 17:25:16 · 2832 阅读 · 1 评论 -
Linux 下,如何创建守护进程
最近在看APUE,记录一下如何创建一个完整的守护进程。以备不时查看。(注:RedHat在/var/log/messages文件中,可查看syslog函数记录的日志。)[cpp] view plaincopy#include #include #include #include #include #include原创 2013-04-09 15:25:25 · 1074 阅读 · 1 评论 -
Linux下gcc生成和使用静态库和动态库详解
一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 1.2库的种类linux下的库有转载 2013-03-20 16:32:31 · 1064 阅读 · 0 评论 -
Linux 下如何查看C结构体等符号定义
今天写程序时,用到了pthread_cond_timedwait 函数,其原型为:int pthread_cond_timedwait(pthread_cond_t *restrict cond , pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime); 最后一个参数是 timespec 结构体,可原创 2013-03-29 19:32:35 · 6324 阅读 · 0 评论 -
Linux 下产生core文件的一些注意问题
综述:RedHat 产品缺省是不产生core文件的,可以运行命令:ulimit -c unlimited 打开内核的core文件开关。 (ulimit -c 0 关闭内核的core文件开关)。如何使用core文件:假设产生的文件名为:core.29548 (文件名一般都是core.+运行时产生错误的进程ID) ,则首先要找到产生core文件的应用程序名。输入shell命令:strings转载 2013-03-15 14:38:16 · 6670 阅读 · 0 评论 -
字符串处理函数
void *memccpy (void *dest, const void *src, int c, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。void *memcpy (void *dest, const void *src, size_t n);转载 2013-03-13 15:49:14 · 694 阅读 · 0 评论 -
如何在 C 程序中加入调试符号
#include #include #define DEBUG 1 /*发布正式版时,将1改为0。*/#if DEBUG #define DEBUG_INPUT printf("\nFile %s line %d" \ " x=%d, y=%d,z=%d\n", \ __FILE__,_原创 2013-01-08 16:16:54 · 1245 阅读 · 0 评论 -
C中的数组和指针
在这里随便定义一个数组 int arr[5]; arr现在就是数组名, arr 代表的是该数组整块内存,即sizeof(arr) == 20 (假设sizeof(int) == 4), arr 里的内容是该块内存的首地址,即 arr == &arr[0] 。 arr可以看做是一个常量,也就不可以使用 arr++ 之类的运算。转载 2014-12-23 14:38:05 · 563 阅读 · 0 评论