C语言写文件或日志
摘要:/* 功能: 获取当前系统时间 返回值: 0-成功,-1-失败 out: 保存返回的系统时间,格式由fmt决定 fmt: 0-返回:yyyy-mm-dd hh24:mi:ss, 1-返回:yyyy-mm-dd, 2-返回:hh24:mi:ss*/int getTime(char *out, int fmt) // 获取当前系统时间{ if(out == NULL) return -1; time_t t; struct tm *tp; t = time(NULL); tp = localtime(&t); if(fmt == 0) sprintf(out, "%2.2d-%2
阅读全文
posted @
2011-04-10 18:25
清清飞扬
阅读(10413)
推荐(1) 编辑
warning: the `gets' function is dangerous and should not be used.
摘要:使用的是 Fedora 10 gcc编译下面程序 显示warning: the `gets' function is dangerous and should not be used.问题出在程序中使用了 gets Linux 下gcc编译器不支持这个函数,解决办法是使用 fgetsfgets()函数的基本用法为:fgets(char * s,int size,FILE * stream);/* 代码实现 */#include <stdio.h>int main ( ) { char name[20]; printf("\n 输入任意字符 : "); f
阅读全文
posted @
2011-04-10 13:26
清清飞扬
阅读(3089)
推荐(0) 编辑
C获取系统时间
摘要:/* 功能: 获取当前系统时间 返回值: 0-成功,1-失败 out: 保存返回的系统时间,格式由fmt决定 fmt: 0-返回:yyyy-mm-dd hh24:mi:ss, 1-返回:yyyy-mm-dd, 2-返回:hh24:mi:ss*/int getTime(char *out, int fmt) // 获取当前系统时间{ if(out == NULL) return -1; time_t t; struct tm *tp; t = time(NULL); tp = localtime(&t); if(fmt == 0) sprintf(out, "%2.2d-%2.
阅读全文
posted @
2011-04-09 23:26
清清飞扬
阅读(509)
推荐(0) 编辑
C语言文件操作函数大全
摘要:clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #include<stdio.h> 定义函数 int fclose(FILE * stream); 函数说明 fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所
阅读全文
posted @
2011-04-09 22:10
清清飞扬
阅读(294)
推荐(0) 编辑
C语言的数据类型
摘要:C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以b i t为例,整数与CPU字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定。对于多数微机,表2 - 1给出了五种数据的长度和范围。 表中的长度和范围的取值是假定C P U的字长为1 6 b i t。C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举。这些复杂类型在以后的章节中讨论。除v o i d类型外,基本类型的前面可以有各种修饰符。修饰符用来改变基本类型的意义,以便更准
阅读全文
posted @
2011-04-09 20:32
清清飞扬
阅读(328)
推荐(1) 编辑
gcc 编译多个源文件
摘要:一. 常用编译命令选项假设源程序文件名为test.c。1. 无选项编译链接用法:#gcc test.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。2. 选项 -o用法:#gcc test.c -o test作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。3. 选项 -E用法:#gcc -E test.c -o test.i作用:将test.c预处理输出test.i文件。4. 选项 -S用法:#gcc -S test.i 作用:将预处理输出文件test.i汇编成test.s文件。5.
阅读全文
posted @
2011-04-08 09:12
清清飞扬
阅读(2082)
推荐(0) 编辑
1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
摘要:#include <stdio.h>int main() { int i,j,k, c = 0; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ { printf("%d%d%d\n",i,j,k); c++; // 个数加1 } } printf("count = %d\n", c)
阅读全文
posted @
2011-04-06 22:45
清清飞扬
阅读(517)
推荐(0) 编辑
获取可执行文件的全路径和所属目录
摘要:主要代码:int GetCurFilePath(char *lpOut) // get full path of the executable file{ char chPath[BUFSIZ] = {0}; int nRetVal = readlink("/proc/self/exe", chPath, sizeof(chPath)); // get full path of the current-executable file if(nRetVal < 0) { strcpy(lpOut, "."); return -1; } else {
阅读全文
posted @
2011-03-31 14:56
清清飞扬
阅读(1004)
推荐(0) 编辑
dlopen加载c++ 函数及类
摘要:问题所在 有时你想在运行时加载一个库(并使用其中的函数),这在你为你的程序写一些插件或模块架构的时候经常发生。 在C语言中,加载一个库轻而易举(调用dlopen、dlsym和dlclose就够了),但对C++来说,情况稍微复杂。动态加载一个C++库的困难一部分是因为C++的name mangling(译者注:也有人把它翻译为“名字毁坏”,我觉得还是不翻译好),另一部分是因为dlopen API是用C语言实现的,因而没有提供一个合适的方式来装载类。 在解释如何装载C++库之前,最好再详细了解一下name mangling。我推荐您了解一下它,即使您对它不感兴趣。因为这有助于您理解问题是如何产生的
阅读全文
posted @
2011-03-30 18:17
清清飞扬
阅读(6860)
推荐(2) 编辑