I am trying to get file open/write/create operation, I have tried fslogger which can only get file creation/delete....and other operations, can not get open/close operation, then I wrote a driver to do it, I can get open/close operation but can not get create operation, what's more, it's too messy! for example, if I open a file and modify it, and then close it, the driver gets a lot of open/write operations..I have no way to tell which one is really caused by user open/close operation.. any hints about this? thanks.
Related Questions in MACOS
- Error installing Nativescript on Mac M2 Sonoma 14.4.1
- macOS - Most secure way of a GUI SUDO_ASKPASS
- When using onDrag in SwiftUI on Mac how can I detect when the dragged object has been released anywhere?
- Why does Hugo generate different taxonomy-related HTML on different OS's?
- ZSH function parameters conundrum
- how to make read only file/directory in Mac writable
- macOS BigSur - Unable to run bundled php version or brew php 8
- 9 Digit Addresses in Hexadecimal System in MacOS
- MacOS Bash-Script: while read p and echo
- How to make a range for tail rows on a categorized table in Numbers with JXA scripts?
- Cannot build a basic project with curl on Mac (M2) for Raspberry Pi Pico
- How to recover deleted files from create vite react project
- Can't run built SFML project from Xcode template
- React Native - RealmJS - Linker command failed with exit code 1
- How can I manually add a keyboard shortcut to a Shortcut Action Service directly via the system files, without going through the System Prefs GUI?
Related Questions in KERNEL-EXTENSION
- Is it possible to develop a Transparent Data Encryption(TDE) system on macOS now?
- How to directly access physical addresses or convert to virtual address on macOS for Apple silicon?
- Issue retrieving buffer from the device on a custom device driver in MacOS
- lldb - attach to target Mac over ethernet after a kernel panic
- Unloading a kext after macOS 11 Big Sur
- How to delete potential malware files in sbin/bin system directory on Mac M1?
- Is it feasible to write a macOS kernel-extension for Ventura?
- How to store kext parameters between runs?
- How to register a key in the IORegistry and react to its change in the kext?
- Unable to load kext "Authenticating extension failed"
- MacOS kext panic “Request address is greater than 32 bits”
- (SQLITE3/KEXT) Want to revoke my MacOS trust on installer, so it prompts me again about allowing what I previously allowed (and don't want to now)
- "Failed to bind" while loading a kernel extension on macOS 13 Ventura
- How can we open a hard drive using kernel extension in Mac OSx?
- Where we can find log file of KEXTs in Mac OS?
Related Questions in FILE-MONITORING
- How to detect a file change using Windows batch?
- Monitor file for read availability using asyncio on Windows
- PowerShell - How to find which paths a given command will execute against?
- How to use Git to monitor file changes in production servers without affecting performance?
- Monitor for when a lockfile disappears
- Monitoring file changes in linux, Looking for a specific line
- Python get the path of the program that has modified the file
- Watchdog library isn't identified
- Block .exe files
- Is there a way to watchdog filesystem in python with sudo access file?
- monitoring proc mounts using poll or select
- How does c# FileSystemWatcher handle multiple files?
- Python 3 file change event listener in linux using no modules or installs
- Http-Server, Monitoring a path/folder
- File and folder monitoring efficiency
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Your best bet is going to be the KAuth system. You install your kauth handler (as a kernel extension) and get various callback codes when someone tries to create, open or close a file. This involves getting your callback in the critical path of opening files, so whatever you do has to be quick!
To quote:
If you're writing a kext you then have the question of how to get that info back into userland. FWIW I used Kqueue but you may have success with another method (let me know in the comments if you do!).
More info on Kauth here and KQueue here. It's not brilliantly documented, but there's enough info between those two to work out what you need to do.