GNU GCC 实用工具 ar 的参数的意义(转)
GNU GCC 实用工具 ar 的参数的意义[@more@]GNU GCC 实用工具 ar 的参数的意义:ar key [args] [posname] archive [files]将一组编译过的文件合并为一个文件.最常见的用法就是建立并更新由装载器(loader--ld)使用的库文件.在参数中,只有key可以使用,但是每个key都可以加上附加的args(中间不带空格).posname是合并后文件包的文件名.当移动或是替代files的时候,你可以在posname之前或之后进行说明.files 可以有文件通配符,如 *.okey:d 从文件包中删除文件m 从文件包中移动文件到包尾p 打印出文件包中的文件q 在文件包尾加入文件.r 在文件包中
C语言malloc和free[转载]
一、malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。[@more@]关于分配失败的原因,应该有多种,比如说空间不足就是一种。 void free(void *FirstByte): 该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新得到自由。 2、函数的用法: 其实这两个函数用起来倒不是很难,也就是malloc()之后觉得用够了就甩了它把它给free()了,举个简单例子:
查看Linux内核版本的命令
查看Linux内核版本的命令[@more@]方法一: 命令: uname -a作用: 查看系统内核版本号及系统名称方法二:命令: cat /proc/version作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明: /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的方式为访问系统内核 数据的操作提供接口。而我们使用命令“uname -a"的信息就是从该文件获取的,当然用方法二的命令直接查看它的内容也可以达到同等效果.另
fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出(一)
fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出(一)[@more@]格式化输入输出 1. fprintf(格式化输出数据至文件) 相关函数 printf,fscanf,vfprintf 表头文件 #include<stdio.h> 定义函数 int fprintf(FILE * stream, const char * format,.......); 函数说明 fprintf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串结束('')为止。 返回值 关于参数format字符串的格式请参考printf()。成功则返回实际输出的字符数,失败则返回-1,错误
[原]Trim of C
C的精华毫无疑问是指针.用活指针,让C程序更具效率.[@more@]char* trim(char *str){char *ptr = NULL;if (str){ptr = str;while ( *ptr == ' ')++ptr;str = ptr;if ( *ptr == '' ) //if the string is blank space, return strreturn str;for (ptr = str; *ptr; ++ptr);for (--ptr; *ptr == ' '; --ptr);*(++ptr) = '';}return str;}
fgets,fputs,gets,puts 总结
fgets,fputs,gets,puts 总结[@more@]fgets(由文件中读取一字符串) 相关函数 open,fread,fscanf,getc 表头文件 include<stdio.h> 定义函数 har * fgets(char * s,int size,FILE * stream); 函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。 返回值 gets()若成功则返回s指针,返回NULL则表示有错误发生。 范例 #include<std
mingw&msys安装过程
mingw&msys安装过程[@more@] 1. 到官网下安装文件mingw-get-inst-20111118.exe;http://sourceforge.net/projects/mingw/files/MinGW/ Wiik:http://www.mingw.org/wiki/Getting_Started2. 安装mingw,并随带安装MSYS.3. 运行C:MinGWmsys1.0msys.bat,下装支持复制的rxvt包: mingw-get install msys-rxvt 或者:mingw-get install msys-mintty4. 修改msys.bat,用rxvt取代cmd窗口 start %WD%rxvt -backspacekey -sl 5000 -fg White -bg "#008B8B" +sb -fn "Consolas-14" -tn msys -geometry 80x30 -e /b
[转]C、C++中的日期和时间 time_t与struct tm转换
一.概念Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。[@more@]Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,
Install CURL in MSYS
到官網下載curl-*.*.*.tar.gz檔案 到解壓縮目錄下的 lib 目錄 執行 mingw32-make -f Makefile.m32 指令cd curl-7.23.1编译libcurl库文件:cd libmake -f Makefile.m32等待编译完成即可编译curl可执行文件:cd ../srcmake -f Makefile.m32 然 後在你的USER目錄下建立一個 curllib 目錄,將原本解壓縮目錄下複製整個include目錄到curllib下面,再複製解壓縮目錄下lib目錄裡的 libcurl.a,libcurldll.a,libcurl.dll檔案到curlliblib下,最後複製MinGWlib下的 libwldap32.a 和 libws2_32.a 檔案到curlliblib下即可。[@more@]測試一下
指针数组和数组指针的区别
指针数组(an array pointers),故名思义,就是指针的数组;数组的元素是指针;用于存储指针的数组.如:int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。数组指针(a pointer to an array),就是指向数组的指针.如:int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。[@more@]
[转]cout, cerr and endl
[转]cout, cerr and endl[@more@] cerr与cout的主要区分就是,cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。例如下面程序编译后生成test.exe // test.cpp #include <iostream.h> int main() { cout << "hello world---cout" << endl ; cerr << "hello world---cerr" << endl ; return 0; } 在命令行模式下键入下面的命令: test >>cout.txt 运行结果是: 在生成的cout.txt文件中输出了"hello wor
C/C++位运算符
位运算是指按二进制进行的运算[@more@]在程序中,常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。在实际应用中,建议用unsigned整型操作数,因为带符号操作数可能因为不同机器结果不同。c++和c的位操作运算符完全相同,但c++中增加了bitset标准库来支持位集操作,具体内容请参考http://book.51cto.com/art/200809/88698.htm或者http://book.csdn.net/bookfiles/17/1001760.shtml,这些链接都是《C++ Primer中文版》中的内容,大家也可
Linux下Gcc生成和使用静态库和动态库详解(转)
Linux下Gcc生成和使用静态库和动态库详解[@more@]一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 1.2库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入
Codeblocks 和 MinGW的下载路径
http://www.codeblocks.org/downloadshttp://sourceforge.net/projects/mingw/files/MinGW/[@more@]
转:getchar()和EOF总结
getchar()和EOF总结[@more@]一、getchar的两点总结: 1.getchar是以行为单位进行存取的。 当用getchar进行输入时,如果输入的第一个字符为有效字符(即输入是文件结束符EOF,Windows下为组合键Ctrl+Z, Unix/Linux下为组合键Ctrl+D),那么只有当最后一个输入字符为换行符'/n'(也可以是文件结束符EOF,EOF将在后面讨论)时, getchar才会停止执行,整个程序将会往下执行。譬如下面程序段: while((c = getchar()) != EOF) { putchar(c); } 执行程序,输入:abc,然后回车。则程序就会去执行puchar(c),然后输出abc,这个地方不要
理解指针和指针的指针及其赋值的小例子
理解指针和指针的指针及其赋值的小例子[@more@]#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int n = 5; int *p; int **mp; int *p2; int *p3; p = &n; mp = &p; p2 = &p; p3 = p; printf("----------------------------------n"); printf("size of n is %dn", sizeof(n)); printf("n is %dn", n); printf("&n is %dn", &n); printf("----------------------------------n");