fc5 C system call always returning -1

Dave Jones davej at redhat.com
Fri Sep 22 00:40:46 UTC 2006


On Thu, Sep 21, 2006 at 05:21:40PM -0700, Greg Frinchaboy wrote:
 > This may be an old issue but I could not find info in the archives.
 > 
 > u_int num_cpus = system("cat /proc/cpuinfo | grep -c processor > 
 > /dev/null");
 > 
 > Has yielded the number of cpus on the system since I used it in RH7.3 
 > and fc3.
 > Now in fc5, all uses of system("cmd");  return -1
 > 
 > The command executes OK, just the return value is always -1.
 > 
 > u_int num_cpus = system("cat /proc/cpuinfo");
 > dumps the cpuinfo file to the system console
 > 
 > u_int num_cpus = system("cat /proc/cpuinfo | grep -c processor");
 > dumps a 2 to the system console, etc.
 > 
 > Any help would be appreciated...

u_int num_cpus = sysconf(_SC_NPROCESSORS_CONF);

should always do the right thing. Your grep won't.
(hint: There are CPUs that have the string 'processor'
in the model name field of /proc/cpuinfo

	Dave




More information about the fedora-list mailing list