摘要:多进程和多线程原理 fork后子进程会复制父进程的task_struct结构,并为子进程的堆栈分配物理页。理论上来说,子进程应该完整的复制父进程的堆栈以及数据空间,但是2者共享正文段。 由于一般fork后面都结着exec,所以现在的fork都在用写时复制的技术,顾明思议,就是数据段,堆栈一开始并不复
阅读全文
随笔分类 - C 语言
摘要:多进程和多线程原理 fork后子进程会复制父进程的task_struct结构,并为子进程的堆栈分配物理页。理论上来说,子进程应该完整的复制父进程的堆栈以及数据空间,但是2者共享正文段。 由于一般fork后面都结着exec,所以现在的fork都在用写时复制的技术,顾明思议,就是数据段,堆栈一开始并不复
阅读全文
摘要:网络通讯三要素:源 目的 长度 数据传输: TCP 可靠 重传 UDP 不可靠 (视频通话) 相关函数 socket() bind() listen() accept () connect() send() recv() server.c //可接受多个客户端请求(fork) include inc
阅读全文
摘要:int i; const int* p1 = &i; int const* p2 = &i; 上面两个一个意思,const主要看在* 前 * 后 ,const 在前,说面不能通过指针修改其中i的内容,而 分开看,i和p都是可分别修改的.下面还有一种 int * const p3 = &i; 这种co
阅读全文
摘要:按位运算符号 type | 含义 |: : & | 按位与 l | 按位或 ~ | 按位取反 ^|按位异或 |右移 i j i中所有的位向右移j位 所有小于int的类型, 移位以int的方式来做,结果是int 对与unsigned的类型, 左边填入0 对与signed的类型,左边填入原来的最高位(保
阅读全文
摘要:printf %[flags][width][.prec][hlL]type %[]d Flag|含义 |: : | 左对齐 + | 在前面放 +或 (space) | 正数留空 0 | 0填充 width 或 prec | 含义 |: : number |最小字符数 | 下一个参数是字符数 .nu
阅读全文
摘要:自定义类型(typedef) typedef int Length; 使得Length 这个名字就乐意代替int出现在变量定义和参数声明的地方了 声明新的类型的名字 新的名字是某种类型的别名 改善了程序的可读性 typedef long int64_t; typedef struct ADate {
阅读全文
摘要:int main (int argc, char const argv[]) { struct date { int moth; int day; int year; }; struct date today; today.month = 07; today.day = 31; today.year
阅读全文
摘要:程序当中会出现一些数字,尽量要用一些符号去表达这些数字 枚举 enum COLOR {RED, YELLOW, GREEN}; enum 枚举类型名字 {名字, .., 名字n}; 名字可忽略 大括号里面的名字,就是常量符号,它们的类型是int , 值则一次从0到n. 声明枚举时可以指定值 enum
阅读全文
摘要:c语言的变量是放在内存里面的 指针 int p,q; int p,q; 两个相同,p是指针,q是int型变量,所以 是加给p并不是加给int.可以说 p 是个int并不能说p 是个int
阅读全文
摘要:代码复制是程序质量表现不良的表现 void sum(int begin, int end) { int i; int sum = 0; for ( i = begim; i
阅读全文
摘要:整数 char short int long longlong 浮点数 float double longdouble 逻辑 bool 指针 自定义类型
阅读全文
摘要:break和continue break 跳出循环 continue 跳过循环这一轮剩下的语句进入下一轮 note: prime 素数
阅读全文
摘要:int n; scanf("%d", &n); int fact = 1; int i = 1; while ( i
阅读全文
摘要:整数的分解 一个整数是由1至多位数字组成的,如何分解出整数的各个位上的数字,然后加以计算 对一个整数做%10的操作,就得到它的个位数; 对一个整数做/10的操作,就去掉了它的个位数; 然后再对上结果做%10,就得到原来数的十位了; 一次类推。 例 int main() { int x; scanf(
阅读全文
摘要:int main() { int number ; int sum = 0; int count = 0; do { scanf(“%d”, &number ); if( number != 1) { sum += number; count ++; } } while ( number != 1
阅读全文
摘要:if if (im | 大于 = | 大于等于 3 == 6 4 ture 6 5 4 6 5 结果为1 1 4 false else 如何没有括号的情况,if else 会遵循就近原则 级联if else if if (exp1) st1; else if (exp2) st2; else st3
阅读全文
|