C语言main函数argc argv介绍

在刚开始学习C语言时,你一定对main函数的形式有点迷惑,我第一次看到这种形式是在国外那本被誉为C语言圣经的《C语言程序设计》。

原形如下:

#include <stdio.h>

int main(int argc, char ** argv)

{

return 0;

}

如果你最开始是在VC6.0这种带有界面GUI的编译器中写代码的话,可能理解起来稍有难度,当然你在VC6.0编译之后会生成一个exe文件,在命令行执行的话可以看到argc和argv的作用.

这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) ,argv存储了所有的命令行参数 .

......

100个GDB小技巧(二)

snprintf函数

snprintf

int snprintf ( char * s, size_t n, const char * format, ... );

Write formatted output to sized buffer

Composes a string with the same text that would be printed if format was used on printf, but instead of being printed, the content is stored as a C string in the buffer pointed by s (takin......

C语言内存布局

写这篇博客的初衷是我再整理图书的时候翻到一本介绍Linux的书上有介绍size命令.

size命令的输出不包括stack和heap的部分。只包括文本段(text), 代码段(data),未初始化数据段(bss)三部分。

示例:

vi hello.c

#include<stdio.h>

int main()

{

return 0;

}

wq保存之后,输入gcc -o a.out hello.c

[root@centos-linux ~]# size a.out

text data bss dec hex filename

1129......

100个GDB小技巧(一)

本文是100个GDB小技巧阅读总结,100个GDB小技巧.

列出函数的名字

在这个例子中源代码如下:

#include <stdio.h>

#include <pthread.h>

void *thread_func(void *p_arg)

{

while (1)

{

sleep(10);

}

}

int main(void)

{

pthread_t t1, t2;

pthread_create(&t1, NULL, thread_func, "Thread 1");

pthread_create(&t2, NULL......

GDB调试基本使用方法

文章转载自coolshell.cn,对相关内容根据自己理解有改动,原文请访问作者博客.

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。

一般来说,GDB主要帮忙你完成下面四个方面的功能:

1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)

3、当程序被停住时,可以检......

利用crash工具分析堆栈死机问题

1、将/etc/yum.repos.d/centos-*.repo移到别处,新建一个 centos.repo文件

2、里面内容填写如下:

[base]]

name=ftp-server

baseurl=ftp://172.17.62.160/pub/centos6.6

enable=1

gpgcheck=1

gpgkey=ftp://172.17.62.160/pub/centos6.6/RPM-GPG-KEY-CentOS-6

保存文件退出

172.17.62.160是公司内部yum 源,在配置了172.17网段的虚拟机上可以方便安装.若在有外网权限的linux上,无需修改上......

C语言实现进度条功能

今天整理文件发现一个隐藏在硬盘角落里的一段神秘代码,运行之后发现这是一断让我打开眼界的程序。

#include <stdio.h>

#include <unistd.h>

int main()

{

int i;

for(i=0;i<=100;i+=10)

{

printf("Percent completed:%3d%%\r",i);

sleep(1);

fflush(stdout);

}

}

我们先在终端中运行该程序:

gcc -o func func.c

./func

程序会在同一行文件中打印 Percent comple......

Linux软连接与硬连接

1.Linux链接概念

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

命令格式:

ln -s source dist # 建立软连接

ln source dist # 建立硬连接

【硬连接】

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件......

python读书笔记

本文是python编程快速入门的读书笔记,仅记录python相关语言特性.

python编程快速入门预计4-5周时间读完,并完成编程实践练习.开始时间2017-06-22

导入模块 import

Python包括一组模块,成为标准库。每个模块都是一个python程序,包含一组组相关的函数,可以嵌入你的程序之中。

import random

for i in range(5):

print(random.randint(1,10))

from import语句

使用这种形式的import语句,调用random模块中的函数时不需要random.前缀。但是完整的名称会让代码......