记录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语言学习札记》是一份全面且实用的教程,不仅涵盖了C51单片机的基础知识,也注重实践技能的培养,对于想要踏入单片机开发领域的初学者来说,是一份不可多得的参考资料。通过阅读和实践,读者不仅...
首先,KEIL uVision2是一款针对微控制器的集成开发环境(IDE),它包含了C编译器、调试器以及项目管理工具,支持多种单片机平台。在C语言中,数据类型是编程的基础,它们定义了变量存储和操作的规则。对于单片机编程...
C语言是一种强大的、低级别的编程语言,被广泛用于系统编程、嵌入式开发以及各种软件应用。本篇文章将深入探讨C语言的一些核心概念,包括随机数生成、结构体、指针、数组、流程控制以及文件操作。 首先,我们来看...
在编程世界中,C语言是一门基础且至关重要的语言,被广泛应用于系统开发、嵌入式编程、软件工程等多个领域。这份压缩包“C语言书籍和个人学习札记”显然是一个宝贵的资源,它包含了作者对C语言深入理解和实践的结晶...
5. **编译和部署**:生成的代码可以被编译并部署到目标硬件上,或者进行进一步的软件开发。 学习札记可能会详细解释每个步骤,包括如何配置模型以优化代码生成,如何处理实时约束,以及如何调试生成的代码。此外,...
在学习过程中,创建一个名为 "nios_small" 的处理器实例是必要的,这可以通过 SOPC Builder 实现,然后在 Nios II Software Build Tools for Embedded Developers(SBT EDK)中编写和编译 C/C++ 应用程序,最后通过 ...
本压缩包文件“Simulink代码生成学习札记,simulink代码生成及编译,C,C++源码.zip”显然包含了关于如何在Simulink中生成C或C++代码以及进行编译的相关资料,这对于我们深入理解和应用Simulink的代码生成功能非常有...
### makefile札记 #### 知识点概览 1. **makefile基本概念与作用** 2. **makefile在不同操作系统中的应用** 3. **makefile的基本结构** 4. **makefile规则详解** 5. **示例makefile编写** #### 详细知识点解析 #...
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程环境,主要用于开发数据采集、测试测量和控制系统。作为一款强大的工具,它深受工程技术人员和科研人员的喜爱。"LabVIEW 学习札记 ...
从给定的“linux命令札记”中,我们可以提炼出一系列关键的Linux命令知识点,这些命令在日常系统管理和开发工作中非常实用。以下是对这些命令的详细解析: ### 1. 文件操作与管理 #### `mv` `mv` 命令用于移动或...
这样既可以加速开发过程,也能让初学者更加专注于创新和项目开发。 二、学习误区 1. 必须学习汇编语言 汇编语言是单片机编程中一种低级语言,但不是入门学习的必经之路。虽然汇编语言对控制硬件确实有其优势,如...
MySQL 8.0.11 for Windows 是一个流行的开源关系型数据库管理系统,广泛应用于网站开发、企业信息系统和数据存储等领域。本教程将详细介绍如何在Windows操作系统上安装MySQL 8.0.11版本,同时也提供了实际测试过的...
瑟尔效能机的设计与制造是一个精密的过程,旨在重建约翰·瑟尔在1946至1956年间开发的实验模型。这一过程涉及了复杂的几何设计、材料选择和工艺技术。瑟尔效能机的核心驱动单元被称为回转电池,由永磁体构成,可作为...
札记 这是有关Web开发领域中多个主题的常规信息,这些主题以一种简单的方式描述了这些主题,并使您对每个主题都有一个了解,以了解开始学习该主题应怎么做或如何进行搜索以进一步了解它。 您将学习一些代码块语法...
8. **Visual Studio Team Services (VSTS) 集成**:尽管VSTS现在已更名为Azure DevOps,Visual Studio 2017仍然能与其无缝对接,实现持续集成、持续部署(CI/CD)以及团队协作等功能。 9. **性能优化**:性能分析...
札记 所有Readsn阅读笔记 此页面适用于存储库中的所有自述页面 代码102-软件开发简介 读 关联 自述-成长心态 自述文件-Markdown学习 自述文件-Git和GitHub学习 自述文件-学习HTML 自述文件-学习JavaScript 自述文件-...
下面我们将深入探讨这款IDE的核心特性及其与Web开发相关的知识点。 首先,HTML(HyperText Markup Language)是网页的基础,用于构建网页的结构。HBuilderX提供了一流的HTML编写支持,包括智能提示、代码高亮、自动...