On 10/17/2014 04:00 PM, Daniel Hilst Selli wrote:
On 10/17/2014 03:59 PM, Daniel Hilst Selli wrote:
On 10/16/2014 05:31 PM, Yichao Yu wrote:
Resend as plain text.
On Thu, Oct 16, 2014 at 4:01 PM, Yichao Yu <yyc1992@xxxxxxxxx> wrote:
On Thu, Oct 16, 2014 at 3:50 PM, Daniel Hilst Selli <danielhilst@xxxxxxxxx>
wrote:
I'm writing a new application and would be nice to have a pseudo file
showing its status, just the way that procfs does with kernel.
I'm looking for sugestions, I want to `cat' files contents and have
something similar to /proc/meminfo
First I think using named pipes, but, AFAIK, pipes would retain data
writed until someone read it, what I thought is a kind of read
hook that only show data when asked for. Here are a few requisites,
- Don't retain data
- Don't generate disk I/O
- Vanish when application stops
- Work with a simple cat or something similar..
You should have a look at fuse[1].
[1] http://fuse.sourceforge.net/
With that in mind I think about using unix domain sockets.. it seems to
fit all requisites, for
the fourth requisite I could use netcat, that is almost cat,
Cheers
--
To unsubscribe from this list: send the line "unsubscribe
linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Seems god, a little overkill for so simple stuff but adds nice features, I'm taking
a look on further options..
Cheers
good*
Looking further I found that named pipes will block on open() calls, until
the other end open it too. So I still can implement this with named pipes.
Here is the pseudo code implementation I use. (Yes I'm using threads)
void *stats_handler(void *unused)
{
for (;;) {
int fd = open(FIFO_PATH, O_WRONLY); /* should block here */
/* handle open error */
write(fd, statistics_buffer, statistics_buffer_len);
close(fd);
sleep(1); /* avoid flooders :-P */
}
}
void stats_init(void)
{
pthread_t stat_id;
mkfifo(FIFO_PATH, 0755);
/* handle mkfifo errors */
pthread_create(&stat_id, NULL, stats_handler, NULL);
}
int main(void)
{
...
stats_init();
...
}
After that I can just `cat FIFO_PATH' to see my statistics :D
Thanks for all and best regards!
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html