老爷康 发表于 2014-09-28 21:51

写给自己

本帖最后由 老爷康 于 2014-09-28 21:54 编辑

      这个周末,什么都没有干,在自习室呆了两天,因为自己是个新手,所以看书看得很吃力,而且渐渐的发现,UNIX或是编程或这或那,计算机学习研究的方向太多太多~而且不管你看什么,尤其是刚入门的时候,很多东西你都不知道,没有一定的只是储备看什么都是天书,我浅谈自己的一些意见,不足之处请多多指正:
问:你为什么要学习UNIX?      
答:老师说只有在unix下编程,才是高手!
问:你看的第一本关于UNIX的书是什么?            
答:网上很多人多说要看unix环境高级编程!我很庆幸,没有看!因为对于一个刚接触unix的人来说,我建议还是先看UNIX初级教程,他从使用方法和技巧让你了解UNIX,如果一开始就看环境,你很难看懂,因为你连最基础的操作都不会。
问:unix下编程到底是什么?
答:我现在才知道原来老师是忽悠人的,unix下可以编程(C/C++),但是不想JAVA一样等是针对面向的,真正的unix下编程是真对系统(接口、网络等),而不是软件和游戏。
问:如何才能学好unix?
答:这个我还没有权利回答,但是通过一个礼拜的学习,我知道,要想学好unix,要有扎实的基础,无论是编程或者是网络。

下面,我这个小菜鸟讲讲今天所学的东西(高手请飘过):
1、基本的makfile文件编写;这里有一个问题,比如在main.c文件中包含了head.h,而main.c需要调用的func()函数在head.h中声明了,却在list.c中定义的,
                                                         如果你是这样编译:main:main.o list.o
                                                                                                 cc -o main main.o    编译时报错了,说undefined reference to func();
                                                                                                 需要这样改cc -o main main.o list.o
                                                         也就是说编译器不会自动帮助我们链接,需要自己去实现;
2、10.0的FReebsd确实没有9.0的好用(vi编译器经常出错,在非命令环境下不能和其他功能键完美结合),或许是刚出来,很多地方还没有完善的原因,大量错误。。。。。。
3、chsh 轻松改变自己默认启动shell
4、su:sorry?   以root身份进入,cd /etc ;vi group;找到wheel 在root后面加上你自己的名字
5、深刻理解编译器工作原理,会让你头脑清醒,当然,通过写makefile 也会让你头脑清醒;
   编译器在编译(预处理或者是其他什么)阶段,会给.c的源文件生成目标文件;你自己的.h只是被copy到包含他的源文件中,链接就是把目标文件和函数库一起糅合。。。
6,在声明你自己的头文件时,最好是加上#ifndef #define...#endif,他真的在避免重复定义方面有很好的用处,比如你main.c包含了a.h,a.h又包含了b.h,而b.h又包含了a.h那么怎么办?如何直接include,a.h就会在main中被编译两次,后果就是重复!!!

以上是我今天所学的内容,希望和大家交流,计算机真的是非常耗脑力,有句话你交给一个人程序,是折磨他一天,你教会他编程,就是折磨他一辈子,这是真的!!

lsstarboy 发表于 2014-09-29 08:49

刚开始学Unix就看Unix环境编程好像不合适,能看懂的机率非常小。Unix下也可以用java,无非就是一个编程环境的问题,除了#C系列外,其他的语言大多数都能在Unix下实现。
FreeBSD有个porter手册,应该对编程有帮助,可惜我只看了很小的一部分。
编程用自带的vi确实不是很好用,最好装vim-lite,vim-lite才是Linux下的vi。
最好不编辑/etc/group,而用pw命令来修改组,FreeBSD下只有wheel组才能su到root

另外FreeBSD10用的编译器是clang系列,我没主动用过,不敢发表看法。

yyu0378 发表于 2014-09-29 09:32

gcc那输出基本上不是给人看的

老爷康 发表于 2014-09-29 16:24

回复 2# lsstarboy


    兄长,今天刚开始看UNIX环境高级编程,发现自己还是懂的太少,是否能给点建议,应该先看些什么,unix下的基本操作我现在大概了解了,当然只是略懂,但是看起这本书还是很吃力,另外,您能给解释一下,stdarg.h中的va_list等一系列函数的意思吗?

lsstarboy 发表于 2014-09-29 16:51

回复 4# 老爷康


不好意思,我不是学信息技术的,只是略微懂一点C语言,稍深点的我一窍不通。

但是从我接触的其他语言看,语言本身的东西相对好学点,周围相关的东西,特别是原理性的东西才真正考验水平。

lsstarboy 发表于 2014-09-29 16:59

不过你单纯想了解stdarg的话,可以man stdarg,里面都有解释。

CBJenjoy 发表于 2014-09-29 18:38

lsstarboy 发表于 2014-09-29 08:49 static/image/common/back.gif
刚开始学Unix就看Unix环境编程好像不合适,能看懂的机率非常小。Unix下也可以用java,无非就是一个编程环境 ...
FreeBSD自带的vi非常好用,比vim简单,除非你要使用到vim那些复杂的特性与插件,否则就用vi来写代码,真的很舒心。
现在很多原本很简单的东西,越搞越复杂,越来越庞大。喜欢FreeBSD保持那份难得的简单纯洁

CBJenjoy 发表于 2014-09-29 18:41

老爷康 发表于 2014-09-29 16:24 static/image/common/back.gif
回复 2# lsstarboy



那本很简单的,就是基础如门。你只要有C语言基础,应该不难,就是系统调用(就是系统接口函数学习)。

action08 发表于 2014-09-29 23:17

你交给一个人程序,是折磨他一天,你教会他编程,就是折磨他一辈子,这是真的!!



{:3_203:}

老爷康 发表于 2014-09-30 20:11

回复 8# CBJenjoy
就是看的很吃力,最近才开始学的。学习了一个礼拜的unix,C语言也是刚刚复习的,但是自己下了很大功夫,主要是大多数术语看不懂,是不是要看一些操作系统方面的书

   
页: [1]
查看完整版本: 写给自己