排序:
默认
按更新时间
按访问量

C语言sprintf与sscanf函数[总结]

1、前言     我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来。从给定的字符串中 提取相关内容,例如给定一个地址:http://www.bokeyuan.cn:2345,我们要从地址中提出协议,主机地址和端口号。之前对字符串...

2015-04-21 15:35:00

阅读数:401

评论数:0

sprintf和snprintf需要注意的地方

sprintf int sprintf ( char * str, const char * format, ... ); Write formatted data to string Composes a string with the same text that would be pr...

2015-04-20 23:30:53

阅读数:708

评论数:0

write的奥秘

在Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使用文件那样向设备传送数据。可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的呢? 这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代码来解释如何使得一个简简...

2015-04-15 13:50:59

阅读数:459

评论数:0

指针做形参做局部变量以及内存分配

一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同。指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式。即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值。 二级指针做形参:二级指针也是传值,但是他指向的地址是个一维...

2014-11-10 15:33:28

阅读数:459

评论数:0

C/C++中extern关键字详解

1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。       也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern ...

2014-11-01 23:34:06

阅读数:429

评论数:0

c语言中不允许在函数外部给全局变量赋值

今天,在写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部给变量赋值呢?为什么声明变 量的时候可以对变量进行赋值? 出错代码: 1 /* 2 * =================================...

2014-10-31 22:30:44

阅读数:1383

评论数:0

使用指针时的“陷阱”

C语言诡异离奇,陷阱重重,却获得了巨大成功!”——C语言之父Dennis M.Ritchie。Ritchie大师的这句话体现了C语言的灵活性以及广泛的使用,但也揭示了C是一种在应用时要时刻注意自己行为的语言。C的设计哲学还是那句话:使用C的程序员应该知道自己在干什么。有时用C写的程序会出一些莫名其...

2014-10-19 12:08:12

阅读数:505

评论数:0

求教关于被调函数中的malloc与free

问题:在子函数中动态分配内存:p=(int*)malloc(a*sizeof(int)),这个函数的目的是返回p:return(p) 我想问问,该在什么地方进行free(p)呢?如果在子函数中的return前free是肯定不行的,在之后free?子函数的return之后,不就结束函数调用了吗?那...

2014-10-18 21:11:44

阅读数:2061

评论数:0

C语言数组参数与指针参数

我们都知道参数分为形参和实参。形参是指声明或定义函数时的参数,而实参是在调用函数时主调函数传递过来的实际值。 一、一维数组参数 1、能否向函数传递一个数组?看例子: void fun(char a[10]) {    char c = a[3]; } intmain() { ...

2014-10-14 20:39:33

阅读数:566

评论数:0

指针参数是如何传递内存的?

如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?   void GetMemory(char *p, int num) {    ...

2014-10-14 20:24:11

阅读数:555

评论数:0

C语言回调函数学习

对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级应用。简而言之,回调函数是一个通过函数指针调用的函数。如果你把函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数是回调函数。 为什么要使用回调函数呢?我们先看一个小例子...

2014-09-09 23:08:06

阅读数:484

评论数:0

C++中将构造函数或析构函数定义为private

很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将 其放入private区段中会发生什么样的后果?这意味着什么?       当我们在程序中声明一个对象时,编译器为调用构造函...

2014-09-04 10:03:54

阅读数:541

评论数:0

linux bash shell 中的单引号和双引号

原文地址:http://www.cnblogs.com/fhefh/archive/2011/04/21/2024198.html

2014-08-27 20:04:20

阅读数:578

评论数:0

vfork 挂掉的一个问题

在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。 我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现...

2016-05-22 20:12:43

阅读数:500

评论数:0

initramfs实作

这个是翻译来的,原文地址: http://www.landley.net/writing/rootfs-howto.html 怎样使用initramfs   工作过程简述 在2.6kernel启动时,它把rootfs作为它的第一个文件系统挂载(注意:这里的rootfs是真名!!!不是root fi...

2016-04-20 19:01:10

阅读数:409

评论数:0

Linux 多线程应用中如何编写安全的信号处理函数

关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。 0 评论 周 婷 (zhouting@cn.ibm.com), 软件工...

2016-04-13 16:26:01

阅读数:429

评论数:0

Linux多线程中使用信号-1

在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些...

2016-04-12 17:58:49

阅读数:395

评论数:0

Linux多线程同步之读写锁

读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步, 和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入临界区的...

2016-03-31 14:24:40

阅读数:1016

评论数:0

Linux多线程同步之互斥量和条件变量

1. 什么是互斥量        互斥量从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所以在该互斥锁上的阻塞线程都会变成可进行状态,...

2016-03-30 23:30:50

阅读数:969

评论数:0

使用互斥量控制Linux线程同步

一、什么是互斥量 互斥量是另一种用于多线程中的同步访问方法,它允许程序锁住某个对象,使得每次只能有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁。 二、互斥量的函数的使用 它们的定义与使用信号量的函数非常相似,它们的定...

2016-03-30 14:01:56

阅读数:413

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭