学习博客上的各种杂知识 兜兜转载
C解析
1.文件:
1.1文件路径:文件在外部存储设备中的位置
1.2文件名:文件的标识名
1.3文件扩展名:标识文件的格式
2.1打开文件fopen():通过这个函数可以打开一个文件,用法:
文件指针名=fopen(文件名,打开文件方式)
文件打开方式,"w"代表以只读的方式打开一个二进制文件,这类参数还有:
r : 打开一个文本文件,只允许读数据
rb : 打开一个二进制文件,只允许读数据
w : 打开一个文本文件,只允许写数据
wb :打开一个二进制文件,只允许写数据
2.2关闭文件fclose():这个函数用来关闭一个文件,其用法为:
fclose(文件指针)
动态空间的申请是在堆区,malloc函数申请空间,free函数用于释放。
指针扮演一个什么样的角色?存储在静态区的全局变量与静态变量,栈区的局部变量
- 用法:malloc(int size) ,size为需要开辟的字节数。
- 返回值:开辟空间的首地址。
- 用法:free(void *p) , p为指向开辟空间的指针
- 返回值:无返回值。
所谓动态内存管理,也指它能动态地满足对内存空间的需求。
链表可以更好的适应实时变化的存储需求,具有无限的扩展性,然而你并不需要担心是否有足够连续的内存。
- 连续内存约束:数组的内存必须是连续的,当存储数据量达到一定程度,开辟数组空间可能面临一个严重的问题-内存中找不到足够大的连续内存。链表不需要连续的内存,它可以将零散的内存串起来,不断的延伸表的长度。
- 插入与删除:数组的插入与删除需要移动大量的数据,并且在时间的消耗上具有不定性,在数据实时变化的情况下,数组的效率非常低下。链表的删除与插入只需操作几个指针,具有固定的时间消耗,相当高的效率。
- 更好的适用性:即使是动态开辟的数组,如果遇到更大的存储需求,就必须重新开辟更大的数组并复制数据。链表在几乎可以满足任何大小,不断变化的存储需求。
2.链表的构成:
1.链表的插入:将新的节点插入到链表指定的位置。
等待插入的新节点(p),插入链表两个节点之间(左边为p1,右边为p2)
2.链表的删除: 将一个节点从链表删除。
删除节点P,只需要把P1的指针指向P2,P便不在属于链表了
P1->next=P->next;
3.链表的查询:遍历链表查找满足特定要求的节点
引言:
Linux大多应用于服务器,而服务器不可能像PC一样躺在办公室里,它们是放在IDC机房的,所以我们平时登录Linux系统都是通过远程登录的。Linux系统中是通过ssh服务实现的远程登录功能。默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的。所以不需要我们额外配置什么就能直接远程登录linux系统。
Ssh服务的配置文件为/etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务。比如你可以更改启动端口为36000.
为什么不用Telnet?telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。
http://blog.csdn.net/zjf280441589/article/details/17408991
1、ssh的安装
2、生成密钥
3、修改配置文件
5、windows上启动putty,进行如下配置
将Linux作为:
1.开发平台
2.服务器
在Windows平台学习的话,一但涉及到底层的东西,你就会发现很难深入
附:美女的比喻:
Linux就好像是一个极富内涵的美女,不光外表漂亮,而且富有感染力,她会毫不隐藏自己的优点,缺点,然你去自己的品味,欣赏她,以至于深入的了解她,她甚至会为了你而去改变她自己!!
而Windows则更像一位贵妇,虽然外表很漂亮,很有吸引力,但是,万一你要是紧盯着她,她就会说:看什么呢,丑流氓,再看我报警了!!!
作为程序员,有两种方式快速的提高
1)不断的写代码
2)不断的看别人的代码
解决问题的智慧:
注意系统的英文提示信息,以及系统的文档,示例;
提问前,首先自己分析,学习。
互联网,教材,论坛的检索;#Google.combaidu.com提问的智慧!
整理好自己得学习笔记!
学习大纲:
1、文件处理命令
2、权限管理命令
3、文件搜索命令
4、帮助命令
5、压缩解压缩命令
6、网络通信命令
7、系统开关机命令
8、Shell应用技巧
只有root才能执行的命令
/sbin 或/usr/sbin
所用用户都可执行的命令
/bin或 /usr/bin
/bin/ls
选项: -a all
-l long 详细信息
-d directory 查看目录属性
r:read读权限
w:write写权限
x:execute执行权限
用户也分为三种:
1、所有者U:user
2、所属组G:group
3、其他人O:others
Linux很多的大小是用数据块来表示:block,其单位512字节,但其 大小可根据实际应用进行调节。
数据块可以理解为:存储数据的最小单位。
2、cd [change directory]
cd [目录]
e.g.
ch / 切换到根目录
cd.. 切换到上级目录
3、pwd [printworking directory] /bin/pwd
4、touch:创建文件
/bin/touch
touch[文件名]
5、mkdir [makedirectories] :创建目录
mkdir [目录名]
mkdir /test
//mkdir test :在当前目录下创建目录
6、cp[copy]:复制文件或目录
/bin/cp
cp-R [复制目录]
//如果复制的是文件的话,就不用加-R,并且文件数不做限制
附: etc目录下保存的大多是配置文件。
Ctrl+c:终止程序运行
7、mv[move]:移动文件,更名 /bin/mv
类似与剪切、重命名
mv[源文件或目录][目的目录]
e.g.
mv servers ser
改名
mv /test/ser /tmp
移动
mv /test/testfile /tmp/file.test
移动并改名
8、rm[remove]:删除文件 /bin/rm
rm -r [文件或目录]
rm只能用来删除文件,要想删除目录,则要加上-r即可,有时候会很烦人。。。
但是如果你十分确定这个文件目录确实应该删除,则加上-rf即可
如果不想弹出确认信息,则加上 -f选项【force】,并不推荐,不同与UNIX
8.1rmdir 用来删除空目录,不常用
9、cat[concatenateand diplay files] /bin/cat
比较适用于文件内容不是很长的文件
cat[文件名]
10、more /bin/more
分页显示文件内容
命令:
f或Space 翻页
Q或q 退出
Enter 下一行
e.g. more /etc/servies
11、head /bin/head
查看文件的前几行
head -num [文件名]// 不加数字默认看10行
e.g. head -20 /etc/servirs
12、tail/bin/tail
查看文件的后几行
tail -num [文件名]
-f 动态显示文件内容
13、ln[link]: /bin/ln
产生链接文件。
语法: 产生硬链接 不需要加任何选项,直接生成
ln[源文件][目标文件]
产生软链接 需要加-s[soft]
ls-s [源文件][目标文件]
附: 为什么他可以同步更新
ls -i i[inode] i节点实际上就是一个数字标识,因为Linux 不认识字符!在Linux里面处理任何东西,都要有一个数字标识。所以,所有文件必须要有i节点!