• 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,再运行.2)

  • 相关阅读:
    TOMCAT清理
    tomcat 热部署、热加载 精析
    TOMCAT配置数据库连接池
    TOMCAT修改端口号
    TOMCAT配置管理员
    Go语言net/http 解读.
    《coredump问题原理探究》Linux x86版7.7节 set对象
    Asp.net与office web apps的整合
    【设计模式】代理模式实现连接池
    手把手实现Java权限(1)-Shiro介绍
  • 原文地址:https://www.cnblogs.com/swordenchanter/p/11025226.html
Copyright © 2020-2023  润新知