宝剑锋从磨砺出,梅花香自苦寒来。Emal: slp195@qq.com
一个二进制文件:
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
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同行的字母应在