- 浏览: 460829 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
struct flock { short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ short l_whence; /* SEEK_SET, SEEK_CUR, SEEK_END */ OFF_T l_start; /* starting offset relative to l_whence */ OFF_T l_len; /* len == 0 means "until end of file" */ pid_t l_pid; /* Process ID of the process holding the lock, returned with F_GETLK */ }; 关于struct flock,锁的范围是这么算的 (l_whence + l_start) ~ (l_whence + l_start + l_len) // 不同的系统,对定义的flock结构,可能不同。
#include <stdio.h> #include <fcntl.h> #include <sys/file.h> #include <stdlib.h> #include <unistd.h> void printLockName(int lockType) { printf("lock type = %d\n", lockType); switch (lockType) { case F_RDLCK : printf("lock type is F_RDLCK\n"); break; case F_WRLCK : printf("lock type is F_WRLCK\n"); break; case F_UNLCK : printf("lock type is F_UNLCK\n"); break; default : printf("not lock type !\n"); } } void setFlock(struct flock *lock, int type, off_t offset, int whence, off_t len) { lock->l_type = type; lock->l_start = offset; lock->l_whence = whence; lock->l_len = len; } int lock_reg(int fd, int cmd, int type, off_t offset, int whence, off_t len) { struct flock lock; setFlock(&lock, type, offset, whence, len); return (fcntl(fd, cmd, &lock)); } pid_t lock_test(int fd, int type, off_t offset, int whence, off_t len) { struct flock lock; setFlock(&lock, type, offset, whence, len); if (fcntl(fd, F_GETLK, &lock) < 0) printf("fcntl error"); printLockName(lock.l_type); if (lock.l_type == F_UNLCK) return 0; return lock.l_pid; } void putexit(char *p) { printf("%s\n", p); exit(1); }
#include <stdio.h> #include <fcntl.h> int main(int argc, char *argv[]) { int fd = open("/home/long/myc/tem.file", O_RDONLY); if (fd < 0) putexit("open file error!"); if (lock_reg(fd, F_SETLK, F_RDLCK, 0, SEEK_SET, 0) == 0) printf("lock_reg OK\n"); printf("getpid() = %d\n", getpid()); sleep(10); close(fd); return 0; }
#include <stdio.h> #include <fcntl.h> int main(int argc, char *argv[]) { int fd = open("/home/long/myc/tem.file", O_WRONLY); if (fd < 0) putexit("open file error!"); int pid = -1; pid = lock_test(fd, F_WRLCK, 0, SEEK_SET, 0); printf("lock pid = %d\n", pid); sleep(10); char buf[] = "hello\0"; if(write(fd, buf, sizeof(buf)) < 0) perror("wrire error"); close(fd); return 0; }
发表评论
-
execl
2010-10-28 11:13 845#include <stdio.h> ... -
dup2-close-fd
2010-10-28 10:54 816int main(int argc, char *argv ... -
Chapter 16__套接字
2010-10-25 11:39 588AF_INET、TCP、UDP、SCTP 报文界限 soc ... -
pthread_mutex_lock Test
2010-10-22 15:43 973#include <stdio.h> #in ... -
Chapter 15__进程间通信
2010-10-19 15:15 669- - 纯属抄书。。。 IPC(InterProcess ... -
APUE一栏入口
2010-10-14 15:25 756《UNIX环境高级编程》 《Advanced Programm ... -
Chapter 3__文件IO
2010-10-14 14:51 24int fcntl(int filedes, int cm ... -
Chapter 14
2010-10-14 09:01 7101、永远阻塞的调用有哪些? 阻塞,直到函数调用完成为止, ... -
Chapter 5__标准IO库
2010-10-12 11:56 6041)缓冲的本质是减少read和write调用的次数,也就是物 ... -
Chapter 4__文件和目录
2010-10-09 17:34 701一些概念: 主、次设备号 主设备号标识设备驱动程序 次设备号 ... -
Chapter 3__文件IO
2010-10-08 15:47 658无聊,贴些本章的关键字: 一、空洞文件、预读技术(read ... -
Chapter 1__ls DIR And struct dirent
2010-10-08 10:25 58遍历目录 #include "aupe.h& ... -
stdarg.h 可变长参数
2010-09-30 12:13 759http://zh.wikipedia.org/zh-sg/S ... -
Practice Shell解释器
2010-09-29 15:34 951http://linux.chinaunix.net/bbs/ ... -
Chapter 13__守护进程Daemon
2010-09-29 14:43 626为什么守护进程会从进程中成为一类,相对普通进程有什么区别? ... -
Chapter 12__线程控制
2010-09-29 09:53 625★12.2线程限制,sysconf函数,增强可移植性; ★ ... -
Chapter 11__线程
2010-09-28 09:35 681★线程的执行环境 线程ID、栈 一组寄存器值 调度优先级和策 ... -
Chapter 10__信号
2010-09-27 14:06 742SIGHUP解说,有关终端和 ... -
Chapter 9__进程关系
2010-09-27 12:06 752------------------------------ ... -
Chapter 8__进程控制
2010-09-19 13:58 721//一些函数: pid_t getpid(void); ...
相关推荐
"Chapter10_J"可能涵盖了一些高级主题,旨在帮助开发者提升技能和理解Java的核心概念。 首先,Java的核心特性之一是它的“一次编写,到处运行”(Write Once, Run Anywhere,WORA)理念。这意味着编写的Java代码...
4. **IO流**:Java的IO流库用于读写数据,包括文件操作、网络通信等。第九章可能涵盖了输入输出流的基本概念,如字节流和字符流,以及缓冲流、对象序列化和文件复制等实际应用。 5. **多线程**:Java提供了内置的多...
本章将深入探讨Java的第14章,这一章节可能涵盖了Java的高级特性,如多线程、集合框架的深入理解、输入/输出流、网络编程以及可能的异常处理和反射机制。 1. **多线程**:Java中的多线程允许程序同时执行多个任务。...
本章节我们将深入探讨"chapter7"中的核心概念,这通常涵盖Java编程的高级主题,如多线程、集合框架、IO流以及网络编程等。 首先,多线程是Java中的重要特性,它允许程序同时执行多个任务,提高了程序的效率和响应性...
6. **Java_Chapter_05.ppt**:最后一章可能涉及更高级的主题,如文件和IO流操作,多线程(线程的创建、同步、死锁),或者深入到反射、注解、枚举等特性,甚至可能介绍Java的泛型和集合框架的高级用法。 学习这套...
4. **IO流与NIO**:`Chapter5`可能会涵盖I/O流的基本概念,如字节流和字符流,缓冲流,对象序列化,以及Java NIO(非阻塞I/O)系统,如通道和选择器。 5. **反射机制**:`Chapter6`可能讨论Java的反射机制,如何在...
14_DateTimeDemo 演示日期时间选择控件的使用方法。 15_CalendarDemo 演示日历控件的使用方法。 16_IPCtrlDemo 演示IP输入框的使用方法。 第3章(\Chapter03) 示例描述:本章介绍高级Win32控件的使用方法。...
在这个压缩包中,"chapter10"可能代表课程或教程的第十个部分,通常这会涵盖更高级或者特定主题的Java知识。以下是一些可能涵盖的Java知识点: 1. **异常处理**:在Java中,异常处理是一个重要的概念,用于捕获和...
课程内容:1.非阻塞IO 如何将阻塞的读写设置为非阻塞的读写。2.文件锁 1)使用fcntl函数实现 2)使用flock函数实现3.多路IO select方式,poll方式。 4.异步IO5.存储映射
Chapter 32可能涉及更高级的主题,如异常处理、文件I/O、网络编程或线程管理。异常处理是C#中的错误处理机制,通过try-catch块捕获并处理运行时错误。文件I/O操作是任何应用程序的基础,用于读写磁盘上的文件。C#...
《Java语言程序设计(进阶篇)》是深入学习Java编程的一本经典教材,其第28章的课后习题代码着重探讨了Java高级特性和面向对象编程的深度应用。这一章节可能涵盖多线程、网络编程、IO流、异常处理、集合框架以及反射...
578472_Chapter29.zip可能涵盖了高级主题,例如异常处理和事件处理,这是在编写健壮应用程序时必不可少的知识。异常处理允许程序员在遇到错误时优雅地处理,而事件处理则涉及用户界面的交互和响应。 578472_Chapter...
6. **高级I/O技术(Chapter 22 Advanced IO techniques)** 这部分可能涉及RAID配置、ASM(Automatic Storage Management)、ASH(Active Session History)和其他I/O监控工具,以优化数据读写速度,减少I/O延迟,...
《Java语言程序设计案例教程》第七章主要涵盖了Java编程中的高级特性和实践技巧,这些内容对于深入理解和掌握Java编程至关重要。在这一章中,我们将会探索以下几个关键知识点: 1. **异常处理**:Java的异常处理是...
14. **Chapter 14:反射** 反射允许程序在运行时检查类的信息并动态调用方法,是Java的高级特性之一。 15. **Chapter 15:高级话题** 这一章可能涵盖枚举、注解、内部类、Lambda表达式、并发库...
第22章的代码着重讲解了Java的一些高级特性,包括但不限于多线程、集合框架、异常处理、IO流以及反射等。以下是针对这些主题的详细知识点解析: 1. **多线程**:Java提供了一种并发执行任务的能力,主要通过`Thread...
第16章的学习通常涵盖了Java高级特性和一些实用技术,这些内容对于深入理解和掌握Java至关重要。在这个章节中,我们可以期待学习到以下一系列的知识点: 1. **异常处理**:Java的异常处理机制是程序健壮性的重要...
Java编程语言是软件开发领域广泛使用的高级编程语言,尤其在企业级应用中占据了主导地位。本章"java-chapter6"聚焦于Java的核心概念和技术,旨在深入理解和掌握Java的精髓。我们将围绕以下几个关键知识点展开讨论: ...
6. **文件操作与IO流**:"Chapter 29"通常会讲解如何读写文件、使用流进行输入输出操作,这对于任何需要处理外部数据的程序都是必不可少的。 7. **多线程编程**:在某些章节中,可能会讨论并发和多线程,这对于构建...