apue 2013-03-22

输入一个字符串,找出第一个出现一次的字符.

将字符窗中的用户id打印转为整数并+1打印. Myuseradd

"u3:x:502:502::/home/uu3:/bin/bash"

数据指头:“1a2b” ,数据针尾:"3c4d"  有效数据提出来.(有点难)

 

Bzero():

     地址  0的个数,  从该地址存n0,buf

Char buf[100];随即值

Bzero(buf, sizeof(buf));

 

Struct tt abc;

Bzero (&abc, sizeof(abc));

 

Memset()  地址  个数   放什么都可以

Memset(buf, 0, sizeof(buf));  改写bzero()    更强

 

Atoi();  字符串转整数    找到不是数字字符的

Char buf[]="12.345";

Atoi(buf);   12

Atoi(buf+2);  0

Atoi(buf+4);  45

 

Sprintf (); 地址   printf ();输出终端

Sprintf ();数转为字符串

Sprintf (buf, "%d",num);  字符串连接整合

->字符串->翻转

Strlen()  地址  计算字符串长度,不包括  '\0'

Char buf[]="al\0sk\0djf";

Strlen(buf);   2

Strlen(buf+2);  0  '\0'

Strlen(buf+3);  2

 

Strcmp()  地址  地址   比较两个字符串

返回值   0 == 1>  -1 <

相同位置的ASCII

Char buf[]="bbcde";

Char *p="bc";

 

Strcmp(buf,p);  -1

Strcmp(buf+2,p); 1

Strcmp(p+1,buf+3);  -1

 

Strcpy();  地址   地址   字符串复制   带'\0'

Char buf[]="abc\0de\0f";

Char p[]="qw\0er\0oiu";

Strcpy(buf,p);  

Strcpy(p,buf+3);

Strcpy(p+2,buf+4);

 

 

Strcat();  地址  地址  连接两个字符串   先找'\0',再cpy

 

Strcpy,strcat何时一样

地址1==='\0'

Char buf[]="abcdeef";

Strcpy(buf, buf+1);   buf: "bcdeef\0";   在小不变

buf中第一个字母删除掉.

 

 

Strchr();   地址   字符     在字符串中找字符

返回值     找到:地址   没有:NULL   mmap返回值-1  NULL地址也使用

Char buf[]="abcdeef";

Strchr(buf,'c');  buf+2

 

Strstr();   地址  地址  在字符串中找字符串

返回值   找到  地址  没有   NULL

Char buf[]="abcdeef";

Strstr(buf, "ecd");  NULL

 

 

While(p == strstr(buf, "__"));  两个空格

Strcpy(p,p+1);

一次两个空格   思想很重要

 

 

 

内存管理   

Malloc   free       到底干什么

Malloc:堆上    c++  new  (封装malloc)

申请字符串    指针数组:argv   

Char **argv;

->  malloc(sizeof(char *)*(n+1));  1  空指针  NULL

Argv[0]->malloc(strlen(+1));  ''\0'

Execvp();  

 

变长结构体:   变长数组

Struct tt{

Int size;

Struct tt *next;

Char /int arr[100];->   int arr[];   最后一个成员    名字  首地址

};

 

Sizeof(struct tt);  8  

P=malloc(sizeof(struct tt))  +20;+10, +5;

P->size=10;

Strcpy(p->arr, "xiaoming");   

 

P=malloc();

Free(p);

P?   P=NULL;

 

代码       天天见

 

 

Apue   

1,文件操作    3,4,5,14,(select ,poll,mmap);

所有文件相关命令,用C实现从mp3中提取专辑相片

 

练习:

Mycat file    

Mycp   file  file2 (读写)   提高:带权限

Mywc  file  统计文件行数大小

Myhead  -q  file

Mytail   -7   file  

Mysort    file

Mydiff    file file2   是否相同

Mytt  abc  bcdef   file 

Ls -l  -S   目录   /文件   提高:mycp  复制链接文件,目录

比较两个目录是否一样  提高:目录包括子目录

 

2多进程  2~3   7,8,9,13,守护进程  

   进程间通讯     通讯方式   传数据,非数据

Getsid();     10信号(非数据)   15管道

Myshell   :hello  world   

1,管道

2,mkfifo  最简单

3,消息队列

4共享内存

5套接字  socket

 

非数据

1,信号

2PV操作 信号量

3,多线程,线程之间的同步,网络编程 tcp udp  广播

  11,12  线程间同步  16

1,mutex(最快)  

2,死锁

3,读写锁

4条件变量

Pthread_mutex_t;

Pthread_rwlock_t;

Pthread_cond_t;   创建  工作

4,嵌入式web服务器

 聊天

 网络广播

 

posted @ 2013-03-22 21:49  王井玉  阅读(142)  评论(0编辑  收藏  举报