tips

fwrite

fopen打开文件。

fwrite循环写,系统为了减少访问磁盘的次数,会在数据满足一定的长度或者刷新输出缓冲区才会写到磁盘中。

fclose关闭文件时,系统刷新相关的流,所以别忘了调用。在程序结束的时候,也会关闭进程相关的文件描述符。

在某次使用中,在写文件的函数退出的时候,并没有按照预想的生成文件,在程序结束的时候才生成,使用gdb调试,发现程序在main退出的时候一瞬间生成了文件。

在linux中每个进程会维护一个描述符表,会有所有进程都共享的文件表和v-node表。在描述符表中维护着进程打开的所有“文件”,在文件表中存放着文件位置、文件引用计数、指向v-node表中相关项的项,在v-node标准存放着相关文件的具体信息。在进程关掉相应文件时,文件表中的引用计数会减1。

‘\0’

在C语言中,字符串的结尾都会带一个’\0’,以标志字符串的结束。

在shell脚本中的字符串也不例外,echo -n “str”可以去掉。在某次使用md5sum的时候,算出的值总是不对,原因便在这里。

返回值

我们知道在C程序中,是不能返回一个临时变量的指针的,因为在函数退出的时候,相应的栈将被释放,那么存在其中的数据将不能再被访问。但是我们可以返回值,除了这一点之外,还可以返回存储在堆,全局变量区中的变量的指针。还有一点,可以返回函数的指针,在当前函数中有一个临时函数指针,可以将某个函数的指针赋值给它,并将其返回。

赋值

C语言允许结构跨等号赋值。
数组a=b,这样的形式不允许。但是可以struct xx{arrary a},这样就可以使用结构体的对象相互赋值了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值