关键函数:lockf,fileno

#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdbool.h>
#include <wait.h>
#include <stdlib.h>#define PROCNUM 5
#define BUFF_SIZE 32void fileLockTest();using namespace std;int main() {//forkTest1();fileLockTest();return 0;
}
void func_add(){FILE *fp;char buf[BUFF_SIZE] = {0};int num;if( NULL == (fp = fopen("fileAdd.txt","r+"))){perror("fopne()");return;}int fd = fileno(fp);lockf(fd,F_LOCK,0);//文件加锁fgets(buf,BUFF_SIZE,fp);num = atoi(buf);num ++;fseek(fp,0,SEEK_SET);fprintf(fp,"%d\n",num);fflush(fp);//刷新缓冲流sleep(1);lockf(fd,F_ULOCK,0);//文件解锁fclose(fp);
}void fileLockTest(){int i = 0;pid_t pid;for(i = 0; i < PROCNUM; i ++){ //创建PROCNUM个进程pid = fork();if(pid < 0){perror("fork()");exit(1);}if(0 == pid){ //子进程func_add();exit(0);}}for(i = 0; i < PROCNUM; i ++){ //回收PROCNUM个进程wait(NULL);}
}

linux c编程文件枷锁相关推荐

  1. 外网访问arm嵌入式linux_嵌入式Linux系统编程——文件读写访问、属性、描述符、API

    Linux 的文件模型是从 Unix 的继承而来,所以 Linux 继承了 UNIX 本身的大部分特性,然后加以扩展,本章从 UNIX 系统接口来描述 Linux 系统结构的特性. 操作系统是通过一系 ...

  2. 4. linux调用文件计算阶乘前5项和_嵌入式Linux系统编程——文件读写访问、属性、描述符、API

    Linux 的文件模型是从 Unix 的继承而来,所以 Linux 继承了 UNIX 本身的大部分特性,然后加以扩展,本章从 UNIX 系统接口来描述 Linux 系统结构的特性. 操作系统是通过一系 ...

  3. Linux系统编程-文件的操作

    Linux系统编程-文件操作 前言: Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,硬件设备(键盘.监视器.硬盘.打印机)是文件,就连套接字(socket).网络通 ...

  4. linux系统编程——文件编程

    linux系统编程--文件编程 文章目录 linux系统编程--文件编程 一.如何创建.修改一个文件 二.linux系统调用的API 三.文件描述符 四.linux系统调用 1.创建文件-creat ...

  5. Linux系统编程@文件操作(一)

    只总结了部分常用的内容,详细内容参考<UNIX环境高级编程>及相关书籍. Linux中文件编程可以使用两种方法 Linux系统调用(依赖于系统) C语言库函数(不依赖于系统) Linux系 ...

  6. linux 文件操作 编程,Linux系统编程------------文件操作(基础)

    一.文件操作 1.1 Linux文件系统结构 1.1.1  Linux常见系统目录 /bin  :  存放普通系统可执行的命令(ls wc等) /sbin  :  存放系统管理程序(fsck等) /b ...

  7. Linux环境编程--文件基本操作

    Linux 下目录是/这样的  而windows是\怎么记呢?\和w是不是一样的反向?所以Linux的目录就是反的反向,好记了. 一:open函数 名称: open 目标: 打开一个文件. 头文件: ...

  8. linux 打开关闭文件,Linux系统编程-文件打开关闭

    一.文件描述符 对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的.当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数).后续对文件的操作只需通过该文件描述符,内核记 ...

  9. Linux网络编程--文件描述符

    文件描述符 在Unix和Unix-like操作系统中,文件描述符(file descriptor, FD)是一个文件或者像pipe或者network socket等之类的输入/输出源的唯一标识. 文件 ...

最新文章

  1. iOS封装HTTPS双向和单向验证
  2. 《The Art of Readable Code》 读书笔记 01
  3. OpenStack 架构图
  4. Intel® Media Server Studio Support
  5. 如何使用 Java 生成二维码?
  6. Java:main()函数调用类中方法的限制
  7. 3.2.1 虚拟内存的基本概念
  8. Python 字典的操作
  9. PointConv论文阅读笔记
  10. Python中的各种if语句(if条件判断、if...else、if...elif...else、if...else嵌套)
  11. [Java] 蓝桥杯ALGO-42 算法训练 送分啦
  12. Armadillo的安装
  13. 用户是如何浏览你的网站的
  14. 53.Linux/Unix 系统编程手册(下) -- POSIX 信号量
  15. C调用Python的示例代码
  16. echarts的用法
  17. SUDA歌单管理软件,支持Spotify\Tidal\QQ\网易云导入导出歌单
  18. mysql归档模式_数据库归档模式设置步骤
  19. Java编写一个公司员工类
  20. 导航背景变换 php,jQuery实现的背景动态变化导航菜单效果

热门文章

  1. 平衡二叉树 treap
  2. 蓝牙AOA高精度定位基站原厂深圳核芯物联科技参加2021中国国际高新技术成果交易会诚邀生态合作伙伴莅临交流指导2021.12.27-29深圳宝安国际会展中心11号馆
  3. 关于 国产麒麟系统运行Qt,在命令行可以运行而双击无法运行(无反应) 的解决方法
  4. 我的2019年计划清单
  5. 怎么用python编写记事本_利用Python开发实现简单的记事本
  6. 南加大计算机本科学费,南加州大学学费多少
  7. mysql打平子表_对于oracle进行简单树查询(递归查询)
  8. 20162316刘诚昊 10月9日“查找课堂测试”
  9. Revi开发 - 碰撞检测
  10. 1002模拟赛订正(待更)