gcc问题

1)要调试需要ggdb开关:gcc hello.c -ggdb -o hello

2)makefile:2: missing separator。解决方法:makefile中的命令必须以Tab开始,且不能为空格

3)unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的头文件的名称。对于类 Unix 系统,unistd.h 中所定义的接口通常都是大量针对系统调用的封装(英语:wrapper functions),如 fork、pipe 以及各种 I/O 原语(read、write、close 等等)。
4)<arpa/inet.h>里面包含了一些网络编中需要的头文件,还有一些结构体。
5)在vim中使用C++缩进:
在当前用户目录下新建一个.vimrc的隐藏文件,输入:

set cident
set tabstop=4 设定tab宽度为4个字符
set shiftwidth=4 设定自动缩进为4个字符
set expandtab 用space替代tab的输入

set listchars=space:.

set list

set nu 显示行号

注意,那个expandtab最好别配置,写makefile时变空格不符合makefile规范
6)vim显示空格等:
在命令模式:set list
:set listchars=space:.,tab:>-

7)linux下的GetLasterror函数:

#include <error.h>

perror("This is the last error");

8)gdb调试如何传参数:

run myparam

9)gdb如何显示变量值?

p 变量

10)显示指定行附近的代码

list 8

11)bind成功,accept失败返回Invalid parameter

少了listen

12)vim 查看文件路径

ESC模式下先按1,再按Ctrl+g

13)gdb查看内存:

x/16x 0x12345678

14)

vim 查看文件路径
ESC模式下先按1,再按Ctrl+g

15)

signal函数的原型声明void (*signal(int signo, void (*fun(int))))(int)分析
int (*p)();
这是一个函数指针, p所指向的函数是一个不带任何参数, 并且返回值为int的一个函数.
int (*fun())();
这个式子与上面式子的区别在于用fun()代替了p,而fun()是一个函数,所以说就可以看成是fun()这个函数执行之后,它的返回值是一个函数指针,这个函数指针(其实就是上面的p)所指向的函数是一个不带任何参数,并且返回值为int的一个函数.所以说对于
void (*signal(int signo, void (*fun)(int)))(int);
就可以看成是signal()函数(它自己是带两个参数,一个为整型,一个为函数指针的函数), 而这个signal()函数的返回值也为一个函数指针,这个函数指针指向一个带一个整型参数,并且返回值为void的一个函数.
signal函数返回的其实是指向以前的信号处理程序的指针

16)vim加密文件:

:X(大写),然后设置密码保存。取消的话打开文件,输入密码:set key=回车后保存即可

17)boost库编译。先执行命令行窗口(注意:不是VS命令行窗口,然后运行bootstrap.bat,再运行.\b2)

posted @ 2019-06-14 19:55  天使冰王  阅读(196)  评论(0编辑  收藏  举报