summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-06 14:18:56 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-06 14:18:56 +0800
commitd2157cf6a87dfaaec88a4baeecb0da3ab5938308 (patch)
treeb50564c019711aa73224e64334969377965747aa
parent44ac9522219c6a17954c01e03d7670c5828611c4 (diff)
downloadpttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar
pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.gz
pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.bz2
pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.lz
pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.xz
pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.zst
pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.zip
forgot to add memusage.c
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5208 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/common/osdep/memusage.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/pttbbs/common/osdep/memusage.c b/pttbbs/common/osdep/memusage.c
new file mode 100644
index 00000000..5c9c8fc5
--- /dev/null
+++ b/pttbbs/common/osdep/memusage.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <sys/resource.h>
+
+#include "osdep.h"
+
+void get_memusage(int buflen, char *buf)
+{
+ struct rusage ru;
+#ifdef __linux__
+ int vmdata=0, vmstk=0;
+ FILE * fp;
+ char buf[128];
+ if ((fp = fopen("/proc/self/status", "r"))) {
+ while (fgets(buf, 128, fp)) {
+ sscanf(buf, "VmData: %d", &vmdata);
+ sscanf(buf, "VmStk: %d", &vmstk);
+ }
+ fclose(fp);
+ }
+#endif
+
+ getrusage(RUSAGE_SELF, &ru);
+ snprintf(buf, buflen,
+#ifdef __i386__
+ "sbrk: %u KB, "
+#endif
+#ifdef __linux__
+ "VmData: %d KB, VmStk: %d KB, "
+#endif
+ "idrss: %d KB, isrss: %d KB",
+#ifdef __i386__
+ ((unsigned int)sbrk(0) - 0x8048000) / 1024,
+#endif
+#ifdef __linux__
+ vmdata, vmstk,
+#endif
+ (int)ru.ru_idrss, (int)ru.ru_isrss);
+}
+