Index: /trunk/include/iprt/linux/sysfs.h
===================================================================
--- /trunk/include/iprt/linux/sysfs.h	(revision 60392)
+++ /trunk/include/iprt/linux/sysfs.h	(revision 60393)
@@ -364,5 +364,5 @@
  * @param   ...         Format args.
  */
-RTDECL(int) RTLinuxSysFsReadStrFile(char *pszBuf, size_t cchBuf, size_t *pcchWritten, const char *pszFormat, ...) RT_IPRT_FORMAT_ATTR(4, 5);
+RTDECL(int) RTLinuxSysFsWriteStrFile(const char *pszBuf, size_t cchBuf, size_t *pcchWritten, const char *pszFormat, ...) RT_IPRT_FORMAT_ATTR(4, 5);
 
 /**
Index: /trunk/src/VBox/Runtime/r3/linux/sysfs.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/linux/sysfs.cpp	(revision 60392)
+++ /trunk/src/VBox/Runtime/r3/linux/sysfs.cpp	(revision 60393)
@@ -394,5 +394,5 @@
     }
 
-    int rc = RTLinuxSysFsOpenV(&hFile, pszFormat, va);
+    int rc = RTLinuxSysFsOpenExV(&hFile, RTFILE_O_OPEN | RTFILE_O_WRITE | RTFILE_O_DENY_NONE, pszFormat, va);
     if (RT_SUCCESS(rc))
     {
@@ -518,4 +518,29 @@
 
 
+RTDECL(int) RTLinuxSysFsWriteStrFileV(const char *pszBuf, size_t cchBuf, size_t *pcchWritten, const char *pszFormat, va_list va)
+{
+    RTFILE hFile;
+
+    AssertPtrReturn(pszBuf, VERR_INVALID_POINTER);
+
+    int rc = RTLinuxSysFsOpenExV(&hFile, RTFILE_O_OPEN | RTFILE_O_WRITE | RTFILE_O_DENY_NONE, pszFormat, va);
+    if (RT_SUCCESS(rc))
+    {
+        rc = RTLinuxSysFsWriteStr(hFile, pszBuf, cchBuf, pcchWritten);
+        RTFileClose(hFile);
+    }
+    return rc;
+}
+
+
+RTDECL(int) RTLinuxSysFsWriteStrFile(const char *pszBuf, size_t cchBuf, size_t *pcchWritten, const char *pszFormat, ...)
+{
+    va_list va;
+    va_start(va, pszFormat);
+    int rc = RTLinuxSysFsWriteStrFileV(pszBuf, cchBuf, pcchWritten, pszFormat, va);
+    va_end(va);
+    return rc;
+}
+
 RTDECL(int) RTLinuxSysFsGetLinkDestV(char *pszBuf, size_t cchBuf, size_t *pchBuf, const char *pszFormat, va_list va)
 {
