现在的位置: 首页 > 综合 > 正文

学习笔记(一)

2013年07月10日 ⁄ 综合 ⁄ 共 8004字 ⁄ 字号 评论关闭

fscanf函数 
功能:从一个流中执行格式化输入,是从stream中取值出来赋值给参数。跟fprintf作用相对。
用法:int fscanf(FILE *stream,char *format,[argument...]);

int facanf(文件指针,格式字符串,输入列表);

返回值:整型,数值等于[argument...]的个数.

‘atoi’ means:array to integer 一个c语言库函数,作用是把字符串转换成整型数

‘memcpy’原型:extern void *memcpy(void *destin,void *source,unsigned n);
以source指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。

clrscr() 清除文本模式窗口,清屏的意思

memcmp 原型:extern int memcmp(void *buf1,void *buf2,unsigned int count);功能:比较内存区域buf1和buf2的前count个字节;说明: 当buf1<buf2时,返回值<0; 当buf1=buf2时,返回值=0 ;当buf1>buf2时,返回值>0 

getenv 用法:char *getenv(char *enwar); 功能:从环境中取字符串,获取环境变量的值,getenv()用来取得参数enwar环境变量的内容。参数enwar为环境变量的名称,如果该变量存在则会返回指向该变量的指针。环境变量的格式为enwar=value

memset 原型:void *memset(void *s,int ch,unsigned n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII,块的大小由第三个参数指定。它是对较大的结构体或数组进行清零操作的一种最快方法。

sprintf 原型:int sprintf(char *buffer,const char *format[,argument]...);功能:把格式化的数据写入某个字符串;
sprintf的用法跟printf基本相同,只是printf直接把字符串在命令行上输出,而sprintf是打印到字符串buffer中。

strcmp  原型 int strcmp(char * str1,char * str2); 作用是比较两个字符串str1、str2,其中str1<str2返回负数,包含在string.h中
返回值:字符串长度(strlen)

static 用来声明静态局部变量,属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。只赋值一次,在程序运行时它已有处置。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。

#ifndef ch 程序段1 条件编译的一种,意思是如果ch没有被宏定义,就执行程序段1.
typedef 声明新的类型名来代替已有的类型名。例如:typedef int INTEGER;
声明结构体类型:typedef struct{int month;int day;int year;}DATE;

int a=b=1;这个C语句是错的,但是int a,b;a=b=1;是对的,要区分开来。

结构体类型FILE,用来存放文件的信息
fopen  调用方式:FILE *fp;
                 fp=fopen(文件名,使用文件方式); // fp=fopen("al","r");
fclose 调用方式:fclose(文件指针);               // fclose(fp);
EXEC SQL BEGIN DECLARE SECTION;
    char  H_AcctType[2];          //定义的字符数组用来存放从数据库select到的数据             
EXEC SQL END DECLARE SECTION;

exit(-1);用于程序判断错误时退出;
exit(0);用于程序正常时退出;exit()是unix程序中默认退出的函数。 在主函数main()或winmain()之外的其他函数体内需要退出函数的时候调用exit(),参数是一个整型值;

EXEC SQL select ext_brh_id 
         into  :H_InstBrh                                   
         from  typed_brh_info
         where type_cd = 'PPPP';
EXEC SQL用来提示编译器不要把后面的句子当一般C语句处理,这个语句的作用是把查询到的数据输入到变量H_InstBrh中
DbsCommit(); 提交,使前面的数据库操作生效。

DECLARE  - 为访问表定义一个游标
游标一般格式:
DECLARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...
OPEN 游标名称
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
WHILE @@FETCH_STATUS=0
        BEGIN
                  SQL语句执行过程... ...
                  FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
        END
CLOSE 游标名称
DEALLOCATE 游标名称 (删除游标)
允许用户创建游标,用于在一个打到查询里面检索少数几行数据。使用FETCH,游标可以既可以返回文本也可以返回二进制格式。

Vi编辑器

Ctrl+b 屏幕向上移动一页;数字0  移动到这一行的最前面字符处;$   移动到这一行的最后面字符处
G      移动到这个文件的最后一行;gg 移动到这个文件的第一行,相当于1G
n<Enter> n为数字。光标向下移动n行
/word 从光标位置开始,向下寻找一个名为word的字符串。
?word 从光标位置开始,向上寻找一个名为word的字符串。
x,X 在一行字中,x为向后删除一个字符(相当于Del键),X为向前删除一个字符(相当于backspace键)
dd 删除光标所在的那一整行;yy复制光标所在的那一行;nyy
n为数字,复制光标所在的向下n行
ndd n为数字,从光标位置开始,删除向下n列;
p,P p为将已复制的数据粘贴到光标的下一行,P则为贴在光标上一行
u 复原前一个操作;Ctrl+r重做上一个操作
. 这就是小数点。意思是重复前一个动作。
i、I 插入:在当前光标所在处插入输入文字,已存在的文字会向后退;其中,i为“从当前光标所在处插入”,I为“在当前所在行的第一个非空格符处开始插入”。
a、A a为“从当前光标所在的下一个字符处开始插入”,A为“从光标所在行的最后一个字符处开始插入”。
o、O o为“在当前光标所在的下一行处插入新的一行”,O为“在当前光标所在处的上一行插入新的一行”。
r、R   替换:r会替换光标所在的那一个字符;R会一直替换光标所在的文字,直到按下Esc键为止。
:w 将编辑的数据写入硬盘文件中。:wq存储后离开。若为:wq!则为强制存储后离开

sqlca.sqlcode:如果一个SQL语句发生了错误,那么sqlca.sqlcode将是非零值。
              如果sqlca.sqlcode小于0,那么就是发生了某种严重的错误,像数据库定义与查询定义不一致等
              如果大于0则是通常的错误,像表不包括所要求的行等。
sqlca.sqlcode == 0 成功;sqlca.sqlcode == -1 失败
stdlib.h 即standard library标准库头文件,包含了c、c++语言的最常用的系统函数
errno.h Defines the system error varible errno
limits.h  专门用于检测整型数据数据类型的表达值范围
unistd.h  POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多unix系统服务的函数原型,例如read函数等
sqlca.h ORACLE预编译系统的头文件

/* set the lock mode */
EXEC SQL set isolation to committed read;
EXEC SQL set lock mode to wait 20;

sprintf(hOpenText,"database atmp");
EXEC SQL execute immediate :hOpenText;          连接数据库

EXEC SQL disconnect current;  断开数据库

set nu    显示行数

shell脚本是由一系列命令组成的文件。
Unix 每个命令行分成3个字段:命令 [-命令选项] [命令参数]
UNIX对大小写敏感,只接受小写命令名
中断键 Del或Ctrl-c 终端正在运行的程序,并显示shell命令提示符$
u 当使用dd删除行后,按u以后,vi编辑器会放弃上一次的删除
n 继续搜索,用/字符串搜索后
ZZ 保存文件,退出vi;ZZ命令的前面不用:,而且也不需要键入Return完成命令
绝对路径开始处总有斜杠,相对路径名开始没有斜杠(/)
pwd 显示当前目录的绝对路径名
mkdir -p xx/yy/zz  创建目录xx;xx下创建目录yy;yy下创建目录zz
rmdir  命令删除指定的目录,但是,它只能删除空目录,必须在父目录中删除子目录
ls /atm/atmp/ncup/src  显示src的文件列表
ls /atm/atmp/ncup/log/8583.In.log 显示是否存在文件8583.如果不存在,得到错误信息
-a 列出所有文件,包括隐藏文件
-m 按页宽列文件,以逗号分隔
-r 以字母反序列表
-R 循环列出子目录的内容
-s 以文件块为单位显示文件大小
-l 按照长格式列表,显示文件的详细信息 同ll,l
第一组rwx字母允许所有者的读写执行权限,第二组rwx允许用户组,第三组允许其他用户
以句点开始的文件名称为不可见文件或者隐藏文件,目录列表命令通常不显示它们。
cat命令用来显示、创建或合并文件。
lp命令吧文件按发送到打印机,得到文件的硬拷贝。
rm file1 file2 删除两个文件file1和file2
rm -f file1    不询问直接删除file1,f就是force的意思,强制删除
rm -i file1    删除文件前,请求确认
rm -r *  (*)是一个通配符,表示所有文件  递归删除。常用在目录的删除,用来删除目录中的所有文件和子目录
vi -R file1   只读方式打开file1文件
vi -c/most file1   -c选项允许用户在命令行指定vi命令作为参数。
vi file1 file2  打开多个文件并编辑
编辑完file1后,键入n命令转而编辑file2

tar cvf file1.tar *   打包文件

vi编辑器
编辑另一个文件:使用:e命令来打开一个新文件。在vi编辑器中,键入:e后面紧跟要编辑的文件名,回车。
读取另一个文件:在vi编辑器命令状态下,键入:r后跟文件名,然后按回车键。:r命令将指定文件的副本放到缓冲区中用户光标后面的位置。指定文件成为用户正在编辑文件的一部分。
写入另一个文件:如果想把第5行道第100行之间的文本写到文件temp中,只需键入:5,100 w temp,然后回车
y 将指定位置的文本复制到一个临时缓冲区中。该临时缓冲区可用put操作符访问
P大写 将指定缓冲区中的内容放到当前光标位置之上
p小写 将指定缓冲区中的内容放到当前光标位置之下
 部分vi域控制键
 $ 标识域为从光标所在位置到该行的行尾
 0  标识域为从光标前一个位置到该行所在行首
 e  标识域为从光标所在位置到光标所在单词的末尾
 b  标识域为从光标前一个字母到光标所在单词的开始
 dw 删除当前光标后的一个字及其后面的空格。
 de 删除当前光标后的一个字
c 修改操作符,键入cw vi在当前单词most的尾部放置一个标记,并覆盖字母t,然后切换到文本编辑状态。光标停留在将要修改的第一个字母上,键入all来将单词改为all,按Esc键返回到vi命令状态。

find命令的语法:
find pathname search-options action-option
查找选项
-name 文件名  寻找给定filename的文件,文件名可以是简单文件名或者用shell通配符([]、?、*)。如果用这些特殊字符,用引号括起文件名
-size +_n 寻找大小n的文件 +n(表明大于n)n(恰好大小为n)
-type f
寻找具有给定访问模式的文件,文件类型b:块特殊文件(例如磁盘)c字符特殊文件(例如终端)d目录文件f普通文件
-atime +_n 寻找n天以前访问的文件 最后访问日期
-mtime +_n 寻找n天以前更改的文件 最后修改日期
-newer 文件名 寻找比filename更近更新的文件
动作选项 
-print 用来显示每个发现的文件的路径名
-exec command \; 对找到的文件执行commands命令
-ok command \; 执行命令前请求确认
-exec选项 允许给出 一个命令,作用于发现的文件。输入-exec后跟指定命令斜杠和分号。用户能用一对大括号代表发现的文件名。\;之间不能有空格

grep命令
grep 字符串 文件名  
-e 只显示每个文件中包含匹配样式的行数
-i 匹配时忽略大小写
-l  仅显示包含匹配样式的文件名,而不显示行
-n 在每个输出行前显示行号
-v 只显示不匹配的行 
grep -vc 11 FILE?  显示在每个文件中有多少个不包含11的行
find . -name '*.h' -exec grep -i htlog {} \;
find . -name '*.h' -exec grep HtLog.c {} \;
find . -name '*.h' -exec grep -i -n uncompress {} \; -print

tar  Tape Archive ,存档文件
tar -cvf pathname 存放路径
c 创建一个新的存档文件,该文件中原来的内容被覆盖
r replace添加文件到存档文件中,该文件中的原来内容保留
t table of contents列出存档文件中所有被打包文件的文件名
x extract从存档文件中还原出被打包文件
f file用下一个参数作为存档文件的存放位置
v verbose显示详细打包过程信息

#findef
#define
#endif
文件操作FILE,NULL        小写会报错,一定要大写

fopen和freopen函数,fputs和fgets函数
fgets函数的作用是从指定文件读入一个字符串。例如:fgets(str,n,fp); n为要求得到的字符,但只从fp指向的文件输入n-1个字符,然后在最后加一个'\0'字符,因此得到的字符串共有n个字符,把它们放到字符数组str中。
fputs函数的作用是向指定的文件输出一个字符串。例如:fputs("China",fp);  把字符串“China”输出到fp指向的文件。

使用文件方式
r(只读) 为输入打开一个文本文件
w(只写)   为输出打开一个文本文件
a(追加) 向文本文件尾添加数据
rb(只读) 为输入打开一个二进制文件
wb(只写) 为输出打开一个二进制文件
ab(追加) 向二进制文件尾添加数据
r+(读写) 为读写打开一个文本文件
w+(读写) 为读写建立一个新的文本文件
a+(读写) 为读写打开一个文本文件
rb+(读写) 为读写打开一个二进制文件
wb+(读写) 为读写建立一个新的二进制文件
ab+(读写) 为读写打开一个二进制文件
for example: fp=fopen(file_name,"w+");

char * name[]={“Follow”,“Basic”,“Fortran”};
定义一个指针数组name,这个数组的元素是指针,其初值分别是"Follow"、"Basic"、"Fortran"的起始地址。

rewind(fp)  将文件内部的位置指针重新指向一个流的开头。注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。用法:void rewind(FILE *stream);

strcat函数  原型: extern char *strcat(char *dest,char *src);
功能:把src所致字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明:src和dest所致内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

strstr函数  原型: extern char *strstr(char *haystack,char *needle);
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

exit是标准C的库函数,作用是使程序终止,用此函数应当加入stdlib头文件
feof(fp)用来测试fp所指向的文件当前状态是否“文件结束”。如果是文件结束,函数feof(fp)的值为1(真);否则为0(假)。

gcc编辑器
$ gcc -c hello.c     //会产生一个名为hello.o的object file,扩展名为*.o
$ gcc -o hello hello.o   //利用hello.o目标文件创建处以个名为hello的执行文件
$ ./hello                //执行hello这个二进制文件
编译子程序
$ vi thanks.c
$ vi thanks_2.c
$ gcc -c thanks.c thanks_2.c
$ gcc -o thanks thanks.o thanks_2.o
$ ./thank
$ gcc -o hello.c -c   //会自动产生hello.o文件,并且进行优化
$ gcc -o hello hello.c -Wall  //加入-Wall之后,程序编译会比较严谨,所以警告信息也会显示出来
man gcc   可以查询gcc的语法

make的基本语法
target:objectfile1 objectfile2
<tab> gcc -o excutefile objectfile1 objectfile2 
shell 命令
alias 在命令行输入alias,就可以知道当前的命令别名有哪些。
alias lm='ls -al' 直接执行命令来设置别名
打包和压缩命令
compress
$ compress [-dcr] files-or-directory]
参数
-d  : 用来解压缩的参数
-r  : 可以连通目录下的文件同时压缩
-c  : 将压缩数据输出为标准输出,数据流重导向
$ compress -c file1 > file1.back.Z
gzip and zcat
$ gzip [-cdt#] filename
$ zcat filename.gz
参数
-t  : 用来检验一个压缩文件的一致性,看文件有无错误
-#  : 压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好。默认为6
bzip2 and bzcat
$ bzip2 [-cdz] filename 
$ bzcat filename.bz2
参数
-z  : 压缩的参数
tar
$ tar [-cxtzjvfpPN] filename directory
参数
-c : 建立压缩文件的参数命令(create的意思)
-x : 解压缩文件的参数命令
-t : 查看tarfile里的文件。使用参数时,c/x/t只能有一个,不可同时存在
-z : 是否同时具有gzip的属性?
-j : 是否同时具有bzip2的属性?
-v : 压缩的过程中显示文件。
-f : 使用文件名,请注意,在f后要立即接文件名。不要再加参数。
-p : 使用源文件的原来属性
-P大:可以使用绝对路径来压缩
-N : 比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中。
--exclude FILE:在压缩的过程中,不要将FILE打包

switch(表达式)
{case 常量表达式1:语句1;
 case 常量表达式2:语句2;
         ...
 case 常量表达式n:语句n;
 default:语句n+1;

抱歉!评论已关闭.