mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 15:32:52 +02:00
proc_tools: c => cpp; add new helper member to write bool values
Origin commit data
------------------
Branch: ni/coolstream
Commit: 40044905db
Author: vanhofen <vanhofen@gmx.de>
Date: 2017-11-13 (Mon, 13 Nov 2017)
Origin message was:
------------------
- proc_tools: c => cpp; add new helper member to write bool values
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
64
src/system/proc_tools.cpp
Normal file
64
src/system/proc_tools.cpp
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* helper functions to interact with files, usually in the proc filesystem
|
||||
*
|
||||
* (C) 2012 Stefan Seyfried <seife@tuxboxcvs.slipkontur.de>
|
||||
*
|
||||
* License: GPLv2 or later
|
||||
*
|
||||
*/
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h> /* isspace */
|
||||
#include <stdio.h> /* sscanf */
|
||||
|
||||
#include "proc_tools.h"
|
||||
|
||||
int proc_put(const char *path, const char *value, const int len)
|
||||
{
|
||||
int ret, ret2;
|
||||
int pfd = open(path, O_WRONLY);
|
||||
if (pfd < 0)
|
||||
return pfd;
|
||||
ret = write(pfd, value, len);
|
||||
ret2 = close(pfd);
|
||||
if (ret2 < 0)
|
||||
return ret2;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int proc_put(const char *path, bool state)
|
||||
{
|
||||
return proc_put(path, state ? "1" : "0", 1);
|
||||
}
|
||||
|
||||
int proc_get(const char *path, char *value, const int len)
|
||||
{
|
||||
int ret, ret2;
|
||||
int pfd = open(path, O_RDONLY);
|
||||
if (pfd < 0)
|
||||
return pfd;
|
||||
ret = read(pfd, value, len);
|
||||
value[len-1] = '\0'; /* make sure string is terminated */
|
||||
if (ret >= 0)
|
||||
{
|
||||
while (ret > 0 && isspace(value[ret-1]))
|
||||
ret--; /* remove trailing whitespace */
|
||||
value[ret] = '\0'; /* terminate, even if ret = 0 */
|
||||
}
|
||||
ret2 = close(pfd);
|
||||
if (ret2 < 0)
|
||||
return ret2;
|
||||
return ret;
|
||||
}
|
||||
|
||||
unsigned int proc_get_hex(const char *path)
|
||||
{
|
||||
unsigned int n, ret = 0;
|
||||
char buf[16];
|
||||
n = proc_get(path, buf, 16);
|
||||
if (n > 0)
|
||||
sscanf(buf, "%x", &ret);
|
||||
return ret;
|
||||
}
|
Reference in New Issue
Block a user