开学自己就大二了,自己这一年里面学习了不少的东西,放假回家和同学们聊了一下,感觉自己确确实实提升很大,单就暑假留校的知识就够自己喝一壶的了。
第一周
学习了文件操作 ,了解了Linux的文件结构,大概了解了Linux根目录下主要目录的作用。
然后是文件的输入输出操作使用了creat,open,close,read,write等文件的输入输出函数。
最后是文件属性操作,移动和删除,以及目录操作。
这些知识大部分在自己写ls的时候都有使用,比如在递归遍历目录的时候判断文件是否为目录,并且根据文件的属性来获取权限信息,所属信息,创建时间等等。
第二周
学习了进程控制,知道了进程就是运行中的程序,以及进程的各种状态,然后比较有用的有进程的内存映像,因为在学习fork和vfork时要结合进程的内存映像图来理解这两个函数的不同。
在学习守护进程的时候了解了一些信号的内容,以及在进程中exit,return的区别
在这一章学习完毕后自己写了一个简单的shell,里面用到了exec函数来调用不同的系统命令,值得一提的是cd命令不是系统内置的命令需要用到在写ls时用的chdir,比较新颖的是还用到了文件操作中的dup和dup2重定向,并且还调用了readline库,不足的是没能实现多管道,并且没能实现history命令。
第三周
了解了线程,知道了进程是资源管理最小的单位,线程是计算机中独立运行的最小单位。
紧接着是线程的创建函数pthread_create,在写聊天室的时候用到了这方面的知识,值的注意的就是
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
它的最后一个参数arg,因为在聊天室中我要传多个参数给它,一般的思路是行不通的,所以我们可以将参数封装到一个结构体中,然后将结构体传给它。后面还比较重要的有条件变量和互斥锁的配合使用,在学习那以部分的时候自己知道了轮询和回调的概念。
第四周
开始了网络编程一章的学习,刚开始是很多很多的概念(我也很绝望。。。),然后
了解了套接字的一些知识,创建套接字,设置套接字属性,建立连接,绑定套接字,接受连接,发送数据,接收数据,关闭套接字等等操作(坦白说这些操作不照着书真实现不了),在主要系统调用函数里面用的最多的就是setsockopt和I/O多路复用,这些在聊天室中都非常的重要应用。
然后在这一周学长还提了下聊天室的需求,多路复用,数据库等等都有要求
第五周
这周已经开始正儿八经的开始写聊天室了,自己的进度比较慢,但是还是在不停的写,自己在聊天室中使用到了多路复用,mysql,自己看了下json自己没有感觉到好处,所以就没有使用这个。遗憾的是没能在留校结束时候完成聊天室。
回家生活
回家后休息了两天,然后打算写代码的,结果被叫出去玩了一周时间,回家离开学还剩三四天,走走亲戚完全就没有时间学习。
总结暑假学习了不少的东西,可以说是自己在进入大学一年中提升最快的一个月,有时候在遇到问题时候可以缓缓,会有意外的惊喜。然后关于回家,一般在家就别指望学习了,所以一定要珍惜在校的有效时间不断的去提升自己。