![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
历程
文章平均质量分 77
F_hawking
100100001000101001011011001101101010100100111100101011010101010111111100110000000000000000111111111001010101011111111010010000010001000000010011111111111011111111011111111110111111111011111101101010100010010101010001111011010010010010010101010101001111110101001100101000111111101010010101010010101010
展开
-
详述C语言函数调用过程
本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。 先看一个最简单的程序:/*test.c*/#include <stdio.h>int foo1(int m,int n,int p){ int x = m + n + p; return x;}int main(int argc,char** argv){ ...转载 2018-05-03 21:34:32 · 243 阅读 · 0 评论 -
static的二三事
对C语言中的static关键字的深入理解在阅读一些项目源代码时,我发现很多时候,会把函数和变量声明为static,所以,很好奇为什么要这样做,于是有了下面这篇文章。基本概念使用static有三种情况:函数内部static变量函数外部static变量static函数函数内部的static变量,关键在于生命周期持久,他的值不会随着函数调用的结束而消失,下一次调用时,static变量的值,还保留着上次调...转载 2018-04-26 14:42:36 · 232 阅读 · 0 评论 -
static总结篇
在了解了很多网络与书籍的资料后;我对static进行了这样一份小小的总结(随时可能会更新)。 一,static全局变量 我们知道,一个进程在内存中的布局如图1所示: 其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整个生命周期中,.d...原创 2018-04-26 14:50:01 · 144 阅读 · 0 评论 -
可变参数列表
源码剖析1.va_list[html] view plain copytypedef char * va_list定义了一个char * 类型的va_list变量2.va_start[html] view plain copy#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) 将n的长度...原创 2018-05-14 19:58:15 · 193 阅读 · 0 评论 -
Linux权限命令小结
1. 进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限. 进入一个目录>cd 需要(x)可执行权限;touch命令需要(w)写权限;ls命令需要(r)读权限;rm和mv命令不需要权限。2. 查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/lo...原创 2018-07-09 08:25:12 · 175 阅读 · 0 评论 -
进程调度算法
在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度适用于进程调度,有的调度算法两者都适用。进程调度算法:在系统角度来说,公平性:每个进程(不论优先级)都会有机会被运行;较大的吞吐量。用户角度:及时性:响应速度快;较短的周转时间,不应当让用户等待时间过长。常见的调度算法:1.时间片轮转法:在分时系统中,都采用时间片轮回转法。简单轮回法:系统将所有就绪进程按FIFO规则...原创 2018-09-26 13:54:47 · 414 阅读 · 0 评论 -
进程控制
进程创建fork函数:在linux中fork函数从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。#include <unistd.h>pid_t fork(void);//f返回值:子进程中返回0,父进程中返回子进程id,出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:- 分配新的内存块和内核数据结构给子进程- 将父进程...原创 2018-10-09 13:11:59 · 175 阅读 · 0 评论 -
C++基础
一、类型分类类型分类: 基础类型 自定义类型二、命名空间1.命名空间相当于全局域,用{}括起来一个文件,用namespace给这个文件命名。 std是C++库里的文件,它的使用有两种方法,一种是using namespace std,一种是std::cout<<i<<std::endl(::是域作用解析符)。2.C语言中...原创 2018-10-21 20:11:47 · 522 阅读 · 0 评论 -
Linux基础IO
1.练习open/read/write/close等文件相关系统调用接口,纵向对比fd与FILE结构体 open#include<stdio.h>#include<stdlib.h>#include<fcntl.h>int open(const char *pathname,int flags);int open(coonst char *p...原创 2018-10-21 20:40:57 · 200 阅读 · 0 评论