Replaced by g_file_get_contents.

* procargs.c: (glibtop_get_proc_args_s): Replaced by g_file_get_contents.
This commit is contained in:
Benoît Dejean
2004-06-13 09:47:24 +00:00
parent 7fe2ca8cd7
commit 7eeae24a4a

View File

@@ -42,59 +42,31 @@ char *
glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len)
{
char fn [BUFSIZ], buffer [BUFSIZ];
int cmdline, len, total = 0;
char *retval = NULL;
char filename[48];
char *args;
gsize length;
GError *error;
glibtop_init_s (&server, GLIBTOP_SYSDEPS_PROC_ARGS, 0);
memset (buf, 0, sizeof (glibtop_proc_args));
sprintf (fn, "/proc/%d/cmdline", pid);
sprintf (filename, "/proc/%d/cmdline", pid);
cmdline = open (fn, O_RDONLY);
if (cmdline < 0) return NULL;
if(!g_file_get_contents(filename, &args, &length, &error)) {
buf->size = 0;
return NULL;
}
if(max_len) {
retval = g_malloc (max_len+1);
len = read (cmdline, retval, max_len);
close (cmdline);
if (len < 0) {
g_free (retval);
return NULL;
args = g_realloc(args, max_len);
args[max_len-1] = '\0';
length = max_len;
}
*(retval+len) = 0;
buf->size = len;
buf->size = length;
buf->flags = _glibtop_sysdeps_proc_args;
return retval;
}
while (1) {
len = read (cmdline, buffer, BUFSIZ-1);
if (len < 0) {
close (cmdline);
g_free (retval);
return NULL;
}
if (len == 0)
break;
retval = g_realloc (retval, total+len+1);
memcpy (retval+total, buffer, len);
*(retval+total+len) = 0;
total += len;
}
close (cmdline);
buf->size = total;
buf->flags = _glibtop_sysdeps_proc_args;
return retval;
return args;
}