`
fishermen
  • 浏览: 381039 次
社区版块
存档分类
最新评论

C 开发札记

 
阅读更多

    记录C开发中一些小知识,备忘~~

    1 man 手册

1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]

     man 按章节顺序号查找,所以如果想查函数,直接用man 2 XX or man 3 XX。

 

2 linux 支持的标准signal (man 7 signal)

        Signal     Value     Action   Comment
       ----------------------------------------------------------------------
       SIGHUP        1       Term    Hangup detected on controlling terminal
                                     or death of controlling process
       SIGINT        2       Term    Interrupt from keyboard
       SIGQUIT       3       Core    Quit from keyboard
       SIGILL        4       Core    Illegal Instruction
       SIGABRT       6       Core    Abort signal from abort(3)
       SIGFPE        8       Core    Floating point exception
       SIGKILL       9       Term    Kill signal
       SIGSEGV      11       Core    Invalid memory reference
       SIGPIPE      13       Term    Broken pipe: write to pipe with no
                                     readers
       SIGALRM      14       Term    Timer signal from alarm(2)
       SIGTERM      15       Term    Termination signal
       SIGUSR1   30,10,16    Term    User-defined signal 1
       SIGUSR2   31,12,17    Term    User-defined signal 2
       SIGCHLD   20,17,18    Ign     Child stopped or terminated
       SIGCONT   19,18,25    Cont    Continue if stopped
       SIGSTOP   17,19,23    Stop    Stop process
       SIGTSTP   18,20,24    Stop    Stop typed at tty
       SIGTTIN   21,21,26    Stop    tty input for background process
       SIGTTOU   22,22,27    Stop    tty output for background process

       The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.

 

3 Linux-C开源学习

3.1 libevent

      libevent源码深度分析: http://blog.csdn.net/sparkliang/article/details/4957667

 

4 c 最佳实践

1)头文件不能有变量的定义,只能有申明。

2)  对于一个char*类型的buf,分别读出指定的int、long,方法:int i = *(int*)buf[0]; long l = *(long*)buf[4]

3) gdb core.file出现很多问号"??",导致无法定位函数?

    原因:首先看编译选项加-g,如果还有,用如下方法:

    1)gdb exe,进入gdb后执行:core-file core.15839;

    2)gdb core.15893,进入gdb后执行:file exe;

    注:exe是可执行文件。

4) cscope 文件构建: 对于c++需要使用full path

find /home/fishermen/works/intrest/tair -name "*.h" -o -name "*.c" -o -name "*.cpp" > cscope.files

cscope -bkq -i cscope.files

 5) ctags 生成c++辅助查询文件

ctags -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+.h:+.hpp:+.cpp --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q -R

7)make

http://www.ruanyifeng.com/blog/2015/02/make.html

 

5 知识点:

1)__attribute__属性详解

http://blog.csdn.net/ruixj/article/details/4274721

 

2))epoll模型下,什么时候触发EPOLLOUT、EPOLLIN事件?

在LT模式下,如果注册了epollout,只要socket可写(写缓冲未满),就会触发epollout;

在ET模式下,如果注册了epollin,只有当socket由不可写变为可写的时候,才会触发epollout;

在LT模式下,如果注册了epollin,只要socket可读(读缓冲有数据),就会触发epollin;

在ET模式下,如果注册了epollin,只有socket由不可读变为可读的时候,才会触发epollin;

 

 

6 性能分析工具

1)gperftools

 http://code.google.com/p/gperftools

 

分享到:
评论

相关推荐

    51单片机C语言学习札记

    总之,《51单片机C语言学习札记》是一份全面且实用的教程,不仅涵盖了C51单片机的基础知识,也注重实践技能的培养,对于想要踏入单片机开发领域的初学者来说,是一份不可多得的参考资料。通过阅读和实践,读者不仅...

    单片机c语言技巧札记.doc

    首先,KEIL uVision2是一款针对微控制器的集成开发环境(IDE),它包含了C编译器、调试器以及项目管理工具,支持多种单片机平台。在C语言中,数据类型是编程的基础,它们定义了变量存储和操作的规则。对于单片机编程...

    C语言学习札记

    C语言是一种强大的、低级别的编程语言,被广泛用于系统编程、嵌入式开发以及各种软件应用。本篇文章将深入探讨C语言的一些核心概念,包括随机数生成、结构体、指针、数组、流程控制以及文件操作。 首先,我们来看...

    C语言书籍和个人学习札记

    在编程世界中,C语言是一门基础且至关重要的语言,被广泛应用于系统开发、嵌入式编程、软件工程等多个领域。这份压缩包“C语言书籍和个人学习札记”显然是一个宝贵的资源,它包含了作者对C语言深入理解和实践的结晶...

    C8051F330学习札记

    ### C8051F330学习札记 #### C8051F330主要特性 **C8051F330**是一款由Silicon Labs(芯科科技)生产的高性能混合信号单片机(MCU),特别适用于需要集成多种模拟和数字外设的应用场景。下面将详细介绍其主要特性...

    Simulink代码生成学习札记.zip

    5. **编译和部署**:生成的代码可以被编译并部署到目标硬件上,或者进行进一步的软件开发。 学习札记可能会详细解释每个步骤,包括如何配置模型以优化代码生成,如何处理实时约束,以及如何调试生成的代码。此外,...

    Nios II 学习札记

    在学习过程中,创建一个名为 "nios_small" 的处理器实例是必要的,这可以通过 SOPC Builder 实现,然后在 Nios II Software Build Tools for Embedded Developers(SBT EDK)中编写和编译 C/C++ 应用程序,最后通过 ...

    Simulink代码生成学习札记,simulink代码生成及编译,C,C++源码.zip

    本压缩包文件“Simulink代码生成学习札记,simulink代码生成及编译,C,C++源码.zip”显然包含了关于如何在Simulink中生成C或C++代码以及进行编译的相关资料,这对于我们深入理解和应用Simulink的代码生成功能非常有...

    makefile札记

    ### makefile札记 #### 知识点概览 1. **makefile基本概念与作用** 2. **makefile在不同操作系统中的应用** 3. **makefile的基本结构** 4. **makefile规则详解** 5. **示例makefile编写** #### 详细知识点解析 #...

    labview论坛-LabVIEW 学习札记 - 第二卷

    LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程环境,主要用于开发数据采集、测试测量和控制系统。作为一款强大的工具,它深受工程技术人员和科研人员的喜爱。"LabVIEW 学习札记 ...

    linux命令札记

    从给定的“linux命令札记”中,我们可以提炼出一系列关键的Linux命令知识点,这些命令在日常系统管理和开发工作中非常实用。以下是对这些命令的详细解析: ### 1. 文件操作与管理 #### `mv` `mv` 命令用于移动或...

    学习单片机入门的方法与误区

    这样既可以加速开发过程,也能让初学者更加专注于创新和项目开发。 二、学习误区 1. 必须学习汇编语言 汇编语言是单片机编程中一种低级语言,但不是入门学习的必经之路。虽然汇编语言对控制硬件确实有其优势,如...

    mysql-8.0.11-winx64-安装教程(含软件)

    MySQL 8.0.11 for Windows 是一个流行的开源关系型数据库管理系统,广泛应用于网站开发、企业信息系统和数据存储等领域。本教程将详细介绍如何在Windows操作系统上安装MySQL 8.0.11版本,同时也提供了实际测试过的...

    约翰瑟尔发电机设计与制造(英译中版)

    瑟尔效能机的设计与制造是一个精密的过程,旨在重建约翰·瑟尔在1946至1956年间开发的实验模型。这一过程涉及了复杂的几何设计、材料选择和工艺技术。瑟尔效能机的核心驱动单元被称为回转电池,由永磁体构成,可作为...

    reading-notes401

    札记 这是有关Web开发领域中多个主题的常规信息,这些主题以一种简单的方式描述了这些主题,并使您对每个主题都有一个了解,以了解开始学习该主题应怎么做或如何进行搜索以进一步了解它。 您将学习一些代码块语法...

    Visual Studio 2017 免费版 社区版 安装包.zip

    8. **Visual Studio Team Services (VSTS) 集成**:尽管VSTS现在已更名为Azure DevOps,Visual Studio 2017仍然能与其无缝对接,实现持续集成、持续部署(CI/CD)以及团队协作等功能。 9. **性能优化**:性能分析...

    reading-notes:Asac实验室2级需要此回购协议

    札记 所有Readsn阅读笔记 此页面适用于存储库中的所有自述页面 代码102-软件开发简介 读 关联 自述-成长心态 自述文件-Markdown学习 自述文件-Git和GitHub学习 自述文件-学习HTML 自述文件-学习JavaScript 自述文件-...

    HBuilderX.1.6.2.20190220.zip

    下面我们将深入探讨这款IDE的核心特性及其与Web开发相关的知识点。 首先,HTML(HyperText Markup Language)是网页的基础,用于构建网页的结构。HBuilderX提供了一流的HTML编写支持,包括智能提示、代码高亮、自动...

Global site tag (gtag.js) - Google Analytics