slp

宝剑锋从磨砺出,梅花香自苦寒来。Emal: slp195@qq.com

一般模式:

#移动光标

[n+方向键]           跳n个行或者列

[pageup pagedown]    翻页

[0 || home]          移动到行首

[$ || end ]          移动到行尾

[G]                   文档的尾行

[n+G]                 跳到第n行

[gg]                  ==[1G] 首行

[n+enter]             向下移动n行

[H]                   屏幕的首行第一个字符

[M]

一个二进制文件: 

01100011 00111111 11110000 10101010 ... 

【int读取】 

int m; 

fread(&m,sizeof(int),1,fp); 

假设调用fread读取一个int,则int在内存中的01分布为(计算机是以字节为单位,8位)假设低地址优先。 

int m:    1: 0x01100011(int 低8位) 

    2: 0x00111111 

    3: 0x11110000 

    4: 0x10101010(int 高8位) 

总体 m:m4:m3:m2:m1 

     m = 0x10101010,11110000,00111111,01100011 

【char读取】 

假设用char为单位读取: 

char ch[4]; 

fread(&ch,sizeof(char),4,fp); 

那么内存分布为: 

变量        内存地址B    值 

char[0]:    1         0x0

一直对scanf,gets对字符读取很混乱,今天彻底的研究一下!

【背景知识】

1.fscanf

int fscanf(FILE *stream, char *format,[argument...]); 

功能  :读取文本中的字符至遇到'\t',' ','\n'结束,并且不读取这些字符,或者遇到EOF结束

返回值 :整型,数值等于[argument...]的个数,如果遇到文件未返回EOF

2.fgets

char * fgets(char * s,int size,FILE * stream); 

功能  :读取文本中的字符至遇到'\n',包括'\n',或者遇到EOF结束

返回值:fgets()若成功则返回s指针,返回NULL则表示文件结尾或者有错误发生。

总结:

fgets是闭着眼睛读取一行的,同时取走了'\n'

fscanf是读取有效字符的,对于他来说'\t',' ','\n'都是没有意义的,遇到这些字符本次读取就

结束了,下次如果紧接着调用fscanf,系统会直接跳过这些字符到遇到非格式('\t',' ','\n')

的字符为止

例如

abc def ghi\t\tjkl\n

while(scanf("%s",str)!=EOF)

  printf("%s+")

结果为:

abc+def+ghi+jkl

while(gets(str))

  printf("%s+",str)

结果为:

abc def ghi   jkl

+

【读取带注释的config】

1.调用fscanf

  1.1如果str[0]=='#'

  说明此函为注释,那如果此函为空

【topic】模拟显像管的数字输出

#include <stdlib.h> 

#include <stdio.h> 

#include <time.h> 

/* 

显像管coding 

 00 

1  2 

1  2 

 33 

4  5 

4  5 

 66 

*/ 

/* 0-9 数字的编码 */ 

static code[] = {119, 36, 93, 109, 46, 107, 123, 37, 127, 111}; 

/* 数字缓冲*/ 

char buf[7][4]; 

void clear_buf(char buf[][4]) 

    int i, j; 

    for(i = 0; i < 7; i++) 

        for(j = 0; j < 4; j++) 

 &nbs

参考:http://linux.vbird.org/linux_server/0370samba.php#client_win  

【1】安装软件samba,samba-client,samba-common

【2】配置samba服务器

假设要共享的文件夹为 /myshare

# cp smb.conf smb.conf.back  <==先備份再說!

# vim smb.conf

# 1. 先設定好伺服器整體環境方面的參數

[global]

        # 與主機名稱有關的設定資訊

        workgroup     = slpshare

        netbios name  = slpshare

        server string = This is slp's samba server

        # 與登錄檔有關的設定項目,注意變數 (%m) //这些参数文件原本自带,将前面的;去掉即可

        log file = /var/log/samba/log.%m

        max log size = 50

        # 這裡才是與密碼有關的設定項目哩!//不限定用户的共享

   &nbs

1.守护进程:init的孩子进程,调用一下函数使得进程脱离回 话(session) 

//slp.c 

int daemonize(void){ 

    pid_t pid; 

    if((pid=fork())<0) 

    { 

        perror("fork error\n"); 

        exit(1); 

    } 

    else if (pid !=0) 

        exit(0); 

    setsid(); 

    if((pid=fork())<0) 

    { 

        perror("fork error\n"); 

        exit(1); 

    } 

 

    reference:http://blog.sina.com.cn/s/blog_3e4774e30100p21v.html

     Linux有一个特性:OOMKiller,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续运转,内核会挑选一个进程,将其杀掉,以释放内存,缓解内存不足情况,不过这种保护是有限的,不能完全的保护进程的运行。

   在很多情况下,经常会看到还有剩余内存时,oom-killer依旧把进程杀死了,现象是在/var/log/messages日志文件中有如下信息:   Outof Memory: Killed process [PID] [process name].    该问题是lowmemory耗尽,因为内核使用low memory来跟踪所有的内存分配。    当lowmemory耗尽,不管high memory剩多少,oom-killer都会杀死进程,以保持系统的正常运行。   在32位CPU下寻址范围是有限的,Linux内核定义了下面三个区域: # DMA: 0x00000000 - 0x00999999 (0 - 16 MB)

# LowMem: 0x01000000 - 0x037999999 (16 - 896 MB) - size: 880MB

# HighMem: 0x038000000 - <硬件特定>

   LowMem区(也叫NORMALZONE)共880MB,并且是固定不能变的(除非使用hugemem内核),对于高负荷的系统,可能因为LowMem使用不好而触发了OOMKiller机制。因为内存分配是一个连续的区域,在此

1、Enya-Only time:第一代情书女嘉宾出场是的歌曲

2、Jinny - Keep Warm: 狐狸跳加油舞和螃蟹舞的曲子

3、Mis-Teeq - Scandalous:ANDY最常跳的曲子(夏智苑那期ANDY用这支曲子跳舞)

4、N'SYNC - Pop:JUNJIN跳舞用的曲子

5、MC Hammer - U Can't Touch This:申大妈的独家舞曲

6、juliet - lmnt:第一季用过的歌曲

7、Daler Mehndi - Tunak Tunak Tun:东万的独家印度歌曲

8、Mandy Moore - Stupid Cupid:女嘉宾常用的可爱曲子

9、Sarah - Tokyo Town:申大妈的"火鸡"舞曲

10、Kelis - Milkshake:全惠彬用这个跳过兔子舞

11、Kung Fu Fighting:好象是千明勋用过这支曲子跳舞

12、Usher - Yeah!:Eric跳舞用的曲子

13、Bellini - Brazil:ANDY跳爱心舞

14、La Bouche - Be My Lover:申大妈的"独岛"舞曲

15、Eun Ji Won - olbbaemi (All Famy):以前的水晶男孩在情书里唱过这首RAP

16、Sexy music:千明勋跳过这个(费翔的"冬天里的一把火"女生英文版的)

17、Earth, Wind & Fire - Boogie Wonderland:千明勋最常跳的一首负担舞曲

18、Destiny's Child - Lose My Breath:女嘉宾最常跳的一首SEXY舞曲

19、Ricky Martin - Livin' La Vida Loca:曹成模跳过的曲子

20、Wham! - Careless Whisper:千明勋亮出负担眼神时的歌曲

/* 

【playfair加密算法】 

描述来源:2011计算机软件设计赛第十题    

一种Playfair密码变种加密方法如下:

【加密矩阵构造】

首先选择一个密钥单词(称为pair)(字母不重 复,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下: 

1.首先按行填入密钥串。 

2.紧接其后,按字母序按行填入不在密钥串中的字母。 

3.由于方阵中只有25个位置,最后剩下的那个字母则不需变换。 

如果密钥为youandme,则该方阵如下:

y o u a n 

d m e b c 

f g h i j 

k l p q r 

s t v w x 

【加密步骤】 

1、一对一对取字母,如果最后只剩下一个字母,则不变换,直接放入加密串中; 

2、如果一对字母中的两个字母相同,则不变换,直接放入加密串中; 

3、如果一对字母中有一个字母不在正方形中,则不变换,直接放入加密串中; 

4、如果字母对出现在方阵中的同一行或同一列,如df或hi,则只需简单对调这两个字母,即变换为fd或ih; 

5、如果在正方形中能够找到以字母对为顶点的矩形,假如字母对为am,则该矩形的另一对顶点字母中,与a同行的字母应在