摘要:
昨天碰到一个很奇怪的问题,首先来看这段代码: 1 #include 2 int main(int argc,char *argv[]) 3 { 4 long num1 = 203879; 5 long long num2 = 203879; 6 7 long long ... 阅读全文
摘要:
第四届蓝桥杯C/C++ A组第二题,题目如下: 小明正看着 203879 这个数字发呆。原来,203879 * 203879 = 41566646641。这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具... 阅读全文
摘要:
这两天在准备蓝桥杯的杯赛,所以这里写一些它往年的题目我和做的解决程序!以用来整理! 第四届比赛C/C++A组第一题,高斯日记,题目如下: 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日... 阅读全文
摘要:
system()函数的声明和说明如下: 注意它的描述那里,system()执行一个由command参数定义的命令,通过调用/bin/sh -c命令来实现这个功能。也就是说它的逻辑是这样的! 进程调用system函数,system函数调用fork创建一个子进程,然后再调用exec函数来把这... 阅读全文
摘要:
记得刚开始学C语言的时候,用vc的F10来调试程序,经常就是一阵狂按,然后一不小心按过了。结果又得从头再来,那时候我就问我的老师,能不能倒退回去几步。我的老师很遗憾地和我说,不行,开弓没有回头箭。这句话至今我还记得,而且,我也是一直这么认为的。 直到今天,才发现GDB竟然有反向调试这个逆天的B... 阅读全文
摘要:
在讨论这个setuid函数之前,我们首先要了解的一个东西就是内核为每个进程维护的三个UID值。这三个UID分别是实际用户ID(real uid)、有效用户ID(effective uid)、保存的设置用户ID(saved set-user-ID)。 首先说这个实际用户ID,就是我们当前以哪个用... 阅读全文
摘要:
原来刚刚开始做linux下面的多进程编程的时候,对于下面这段代码感到很奇怪, 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define LEN 2 8 void err_exit(char *fmt,.... 阅读全文
摘要:
C语言中两个标准IO fputs和fgets都是针对行来进行数据的读取的!这里关于这两个IO函数我有几个小细节想在这里和大家分享一下,希望能够对大家产生帮助! 首先贴上这两个函数的函数声明,下面以这两个函数声明为基础进行讨论: 我用于调试的代码如下: 1 /* 本程序的输入为niha... 阅读全文
摘要:
首先说什么是C语言的格式化输出,就是printf和它的几个变种(grep -E "v?(sn|s|f)printf")。像这些函数都有一个参数format,format中可以加点转换说明,让输出更加规整!而这个转换说明是由这几部分组成的: %[flags][fldwidth][precisio... 阅读全文
摘要:
看书的时候,发现了这四个函数,想知道他们的不同。结果上网查发现很多人说fgetc、fputc的f代表的是file,就是这两个函数是和文件有关的!但是一看他们的函数声明,如下图: 发现他们的参数里面都有文件指针啊!后来又去翻了翻APUE,发现那个f代表的其实是function,这是怎么一... 阅读全文