Dan Gary wrote:

> I'm working on a new logging system and came across the idea of using
> a program through a symbolic link instead of a file for a log.
> 
> Basically I would write a program that logs to a variety of
> configurable sources, and would act as a file when it comes to I/O,
> doing whatever processing I want in between the "actual" file and the
> calling program.
> 
> My only hang up so far is actually getting the program to emulate file
> I/O without writing to the program file itself.
> 
> So in simple terms, I want a program to act like a file, and I'm stuck on How.
> 
> A FIFO isn't quite what I need, but close, although I need a single
> point of reference to handle all I/O, exactly like a file.
> 
> And I can't/don't want to rewrite every potential calling program to
> work with this.
> 
> I've been thinking I'm going to have to do a kernel module, but I was
> hoping someone might know a way I can implement this w/o doing a kmod.

Implement a networked-filesystem (e.g. NFS, SMB) server which handles
requests by some means other than directly modifying an actual
filesystem. You can then mount the filesystem using the kernel's
existing NFS/SMB client functionality.

This is the only possible approach that doesn't involve either
extending the kernel or modifying client processes.

OTOH, you can modify client *processes* without actually modifying
client *programs* by preloading a shared library which intercepts all
relevant library functions.

-- 
Glynn Clements <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" 
in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to