Where is PATH_MAX defined in linux

stackoverflow上看到一篇帖子Where is PATH_MAX defined in linux,根据自己的理解总结如下:

源代码path_max.c

#include <stdio.h>

#include <linux/limits.h>

int main()

{

printf("%d\n",PATH_MAX);

return 0;

}

使用gcc -E path_max.c -o path_max.i,查案path_max.i,如果源代码中包含头文件limits.h而不是linux/limits.h同样可以得到正确输出......

符合&继承关系下的构造和析构

继承关系下构造析构顺序#include<iostream>

using namespace std;

class Base

{

public:

Base(){

cout << "Base ctor ..." << endl;

}

virtual ~Base(){

cout << "Base dtor ..." << endl;

}

};

class Derived:public Base

{

public:

Derived(){

cout << "Derived cto......

析构函数前加virtual作用

最近在利用地铁通勤时间学习c++相关知识,在csdn看到一篇关于为什么析构函数前加virtual的文章,csdn原文:析构函数前加Virtual作用

大家知道,析构函数是为了在对象不被使用之后释放它的资源,虚函数是为了实现多态。那么把析构函数声明为vitual有什么作用呢?请看下面的代码:

#include<iostream>

using namespace std;

class Base

{

public:

Base() {}; //Base的构造函数

~Base() //Base的析构函数

{

cout << "Output from the de......

strdup函数使用误区

在项目中看到有同事使用strdup函数后没有释放内存,在google搜索后发现许多网站中给的代码例子中使用完之后并未释放内存,存在一定程度上的误导。

geeksforgeeks

// C program to demonstrate strdup()

#include<stdio.h>

#include<string.h>

int main()

{

char source[] = "GeeksForGeeks";

// A copy of source is created dynamically

// and pointer......

复合&继承关系下的构造和析构

继承关系下构造析构顺序#include<iostream>

using namespace std;

class Base

{

public:

Base(){

cout << "Base ctor ..." << endl;

}

virtual ~Base(){

cout << "Base dtor ..." << endl;

}

};

class Derived:public Base

{

public:

Derived(){

cout << "Derived cto......

侯捷C++全方位提升技能素养笔记

最近晚上开始看c++相关资料,网上找到一个侯捷2016年的视频,抽看看了下获益良多.现整理记录相关知识点。

侯捷C++全方位提升技能素养

iostream与iostream.h的区别

When including a header file in C++, what's the difference between...

1) including the .h versus no......

c++ 程序设计学习笔记

函数指针

程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(入口地址)。我们可以将函数的入口地址赋给一个指针变量,使该变量指向该函数。然后通过指针变量就可以调用这个函数。这种指向函数的指针变量称为函数指针。

#include <iostream>

#include <vector>

#include <sys/stat.h>

#include <unistd.h>

#include <string>

#include <fstream>

#include <cstdde......

面向对象编程c实现

微信公众号看到一篇文章,使用C实现封装、继承、多态,恰好最近开发中在使用C++,因此将代码做简单修改提交到自己github中c4oop.

C语言中的隐式转换

为了定义转换规则,C99允许每个整数类型具有"整数转换等级"。下面按从最高级到最低级的顺序排列。

(1)long long int、usigned long long int

(2)long int、unsigned long int

(3) int 、unsigned int

(4) short int 、unsigned short int

(5) char、signed char、unsigned char

(6)_Bool

比较转换规则如下:

如果两个操作数类型相同,过程结束,否则依次尝试下面的规则:

(1):如果两个操作数都是有符号型或者都......

关于溢出的一个真实bug

来源于项目中一个真实的bug,最近项目中要适配32位linux系统时发现一段检测磁盘剩余空间的程序,低于一定空间的话退出安装程序安装失败.

代码简化如下:

参考如下代码:

#include <stdio.h>

#include <unistd.h>

#include <string.h>

#include <sys/vfs.h>

#include <errno.h>

#include <stdint.h>

#include <limits.h>

int main()

{

struct statfs d......