相信很多初学《UNIX环境高级编程》的朋友都会遇到一个问题,运行里面的实例时就出现问题,提示 "错误:apue.h:没有那个文件或目录". apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。1. 超级用户权限登入 #cd /usr/include2. 将apue.h和error.c两个文件copy到该目录下。(apue.h位于 your_apue_path/inlcude ; error.c位于your_apue_path/lib )以我的了 Read More
posted @ 2013-12-27 20:40 Trace... Views(159) Comments(0) Diggs(0) Edit
http://blog.csdn.net/yeyuangen/article/details/6743416 如果给出的文件流是一个输出流,那么fflush()把输出到缓冲区的内容写入文件. 如果给出的文件流是输入类型的,那么fflush()会清除输入缓冲区. fflush()在调试时很实用,特别是对于在程序中输出到屏幕前发生错误片段时. 直接调用 fflush( STDOUT )输出可以保证你的调试输出可以在正确的时间输出. printf( "Before first call\n" ); fflush( STDOUT ); shady_function(); print Read More
posted @ 2013-12-27 19:31 Trace... Views(224) Comments(0) Diggs(0) Edit
网上很多人说需要改变链表的时候就要用二级指针,比如create,delete,destroy...但很多次我用一级指针也能正确操作链表,经过思考和对比,终于总结出:一般有头结点的链表用一级指针即可,无头节点且要操作表头head时就要用的到二级指针。 使用二级指针的原因就是为了操作原生原味的head。一级指针传过去的之是一个地址拷贝,链表头指针的地址在函数内是无法操作的。 比如要删除节点时,删除中间节点和尾节点时不用二级指针。但是删除头节点时,不是删除了就完事,头节点没有了必须寻找另一个头节点。即第二个。 但此时不用二级指针的话是访问不了main()函数里的表头指针的。。 同理,因为有头... Read More
posted @ 2013-12-19 21:09 Trace... Views(316) Comments(0) Diggs(0) Edit
三者均把一个字符串读到程序中,然而,待读入的数据原先是没有存储空间的,所以程序录入字符串时必须先为字符串预留空间。比如: char *name; scanf("%s", name); 会导致段错误。 为name malloc(。。。)空间可解决此问题。 或者 直接定义字符串数组 char name[SIZE];区别:gets(char *buffer): 从系统的标准输入获得一个字符串,读取换行符'\n'之前的所有字符,包括空格,注意:换行符不读入,直接加'\0'结束。fgets(char *buffer, int size, FILE *f Read More
posted @ 2013-12-19 20:47 Trace... Views(256) Comments(0) Diggs(0) Edit