soundmodem: SIOCGIFNETCONFIG a ifconfig

Veros Kaplan xkaplan na fi.muni.cz
Středa Prosinec 1 16:46:10 CET 1999


Krasneho dne preji,

  narazil jsem na zajimavou vec se soundmodemem. Nahodil jsem zarizeni 
sm0 (soundmodem). Ve vypisu zarizeni, ktery provedu prikazem ifconfig
zarizeni sm0 je (dokonce je tam s poznamkou UP RUNNING), ve vypisu,
ktery ziskam z /proc/net/dev je take, ale programem, ktery provadi ioctl
dotaz na vsechna sitova zarizeni se nevypise. (Program prikladam
dole...)

  Nevite nekdo, cim to muze byt zpusobeno?
  Jadro Linuxu je 2.2.12-2 z RH 6.1, mozna je chyba v tom.
  Povedlo se nekomu na tomto jadre rozchodit soundmodem? (spis soukrome)
  Nevite nekdo, kde rostou zdrojaky ifconfigu, zkusil bych prozkoumat
ten...

                                                 Veros
--
Veros Kaplan <xkaplan na informatics.muni.cz>     http://www.fi.muni.cz/~xkaplan
ISO-8859-2 compatible                           ministerstvo medvedich sluzeb
"Vymenim zub za zub. Zn: moudrosti."

--8<-----------------------------------------
#include <stdio.h>
#include <errno.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>

#include <linux/netdevice.h>
#include <linux/if.h>

int main ()
{
	char buffer[1024];
	struct ifconf ifc;
	struct ifreq *ifrp;
	int n, fd;

	ifc.ifc_len = sizeof(buffer);
	ifc.ifc_buf = buffer;

	if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
		fprintf(stderr, "Can't open socket: %s\n", strerror(errno));
		return 2;
	}

	if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) {
		fprintf(stderr, "SIOCGIFCONF: %s\n", strerror(errno));
		return 1;
	}

	n = ifc.ifc_len / sizeof(struct ifreq);
	printf ("Got %i interfaces\n", n);

	for (ifrp = ifc.ifc_req; n--; ifrp++) {
		puts (ifrp->ifr_name);
	}
	return 0;
}
"Precist si jeden slovnik znamena mit je prectene vsechny."



Další informace o konferenci Linux