![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CSAPP
培纪
软件工程在读
展开
-
Linux下生成可执行文件
一个可执行文件的生成我们先来复习一下一个可执行的程序是如何从源代码转变为一个可以运行的二进制文件的。在这一部分,我们以简单的hello.c程序来说明:#include <stdio.h>int main(){ printf("hello, world\n"); return 0;}预处理首先是预处理部分。预处理命令:gcc -E hello.c ...原创 2019-12-06 22:01:32 · 4204 阅读 · 0 评论 -
系统级IO与几个函数
Unix I/O文件在Linux里面,一切皆文件。每一个文件都有一个类型(type)来表明它在系统中的角色:普通文件(regular file)包含任意数据目录(direction)相关一组文件的索引套接字(socket)和另一台机器上的进程通信的类型…这篇博客主要介绍普通文件:文本文件:文本文件是只包含ASCII或Unicode字符的普通文件,就是一系列的文本行,每行以一...原创 2019-12-04 22:33:36 · 265 阅读 · 0 评论 -
关于fork函数的使用
基本必备知识fork函数的基本说明介绍fork函数用于创建一个新的进程,下面引用一段话介绍一下:一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后...原创 2019-12-04 22:28:56 · 987 阅读 · 0 评论 -
整数平方一定大于零吗?
嘿,悄咪咪的问你个问题,你觉得整数平方一定大于零吗?(那不然呢,整数的平方还能小于零不成)哎,别急着回答我们先来跑一段C语言代码来看看:int sq(int x){ return x*x;}int main(int argc, char *argv[]){ int i; for (i = 1; i < argc; i++) { int x ...原创 2019-05-19 00:13:12 · 2743 阅读 · 0 评论 -
请小心栈溢出
写这篇文章本意是帮助萌新们对栈溢出能够有一个较为直观的理解,可能废话有点多,让各位大佬见笑了,还望不喜勿喷。阅读本文前,建议掌握一定汇编基础接下来我们进入正题。或许你在平常时有在老师、朋友、或是其他的程序员的口中听过“栈溢出”这个词,那到底什么是栈溢出呢?为什么栈会溢出呢?我们先来看看百度百科的描述:栈溢出就是缓冲区溢出的一种。由于缓冲区溢出而使得有用的存...原创 2019-05-28 21:32:04 · 3954 阅读 · 1 评论