本文整理汇总了C++中devname函数的典型用法代码示例。如果您正苦于以下问题:C++ devname函数的具体用法?C++ devname怎么用?C++ devname使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了devname函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ptsname
/*
* ptsname(): return the pathname of the slave pseudo-terminal device
* associated with the specified master.
*/
char*
ptsname(int fildes) {
static char slave[] = _PATH_DEV PTS_PREFIX "XY";
static char new_slave[] = _PATH_DEV NEWPTS_PREFIX "4294967295";
char* retval;
struct stat sbuf;
retval = NULL;
if (_fstat(fildes, &sbuf) == 0) {
if (!ISPTM(sbuf)) {
errno = EINVAL;
} else {
if (!is_pts(fildes)) {
(void)snprintf(slave, sizeof(slave),
_PATH_DEV PTS_PREFIX "%s",
devname(sbuf.st_rdev, S_IFCHR) +
strlen(PTM_PREFIX));
retval = slave;
} else {
(void)snprintf(new_slave, sizeof(new_slave),
_PATH_DEV NEWPTS_PREFIX "%s",
devname(sbuf.st_rdev, S_IFCHR) +
strlen(PTM_PREFIX));
retval = new_slave;
}
}
}
return (retval);
}
示例2: pipetapfd
static int pipetapfd(struct chan *chan, struct fd_tap *tap, int cmd)
{
int ret;
Pipe *p;
int which = 1;
uint64_t kludge;
p = chan->aux;
kludge = (uint64_t)p;
#define DEVPIPE_LEGAL_DATA_TAPS (FDTAP_FILT_READABLE | FDTAP_FILT_WRITABLE | \
FDTAP_FILT_HANGUP | FDTAP_FILT_ERROR)
switch (NETTYPE(chan->qid.path)) {
case Qdata0:
which = 0;
/* fall through */
case Qdata1:
kludge |= which;
if (tap->filter & ~DEVPIPE_LEGAL_DATA_TAPS) {
set_errno(ENOSYS);
set_errstr("Unsupported #%s data tap %p, must be %p", devname(),
tap->filter, DEVPIPE_LEGAL_DATA_TAPS);
return -1;
}
spin_lock(&p->tap_lock);
switch (cmd) {
case (FDTAP_CMD_ADD):
if (SLIST_EMPTY(&p->data_taps[which]))
qio_set_wake_cb(p->q[which], pipe_wake_cb, (void *)kludge);
SLIST_INSERT_HEAD(&p->data_taps[which], tap, link);
ret = 0;
break;
case (FDTAP_CMD_REM):
SLIST_REMOVE(&p->data_taps[which], tap, fd_tap, link);
if (SLIST_EMPTY(&p->data_taps[which]))
qio_set_wake_cb(p->q[which], 0, (void *)kludge);
ret = 0;
break;
default:
set_errno(ENOSYS);
set_errstr("Unsupported #%s data tap command %p", devname(), cmd);
ret = -1;
}
spin_unlock(&p->tap_lock);
return ret;
default:
set_errno(ENOSYS);
set_errstr("Can't tap #%s file type %d", devname(),
NETTYPE(chan->qid.path));
return -1;
}
}
示例3: open_tun_any
static int open_tun_any(char *dev_name, size_t dev_name_size)
{
int fd;
struct stat buf;
/* Open lowest unused tun device */
if ((fd = open("/dev/tun", O_RDWR)) != -1) {
fstat(fd, &buf);
printf("Using %s\n", devname(buf.st_rdev, S_IFCHR));
if (dev_name != NULL)
strlcpy(dev_name, devname(buf.st_rdev, S_IFCHR), dev_name_size);
return fd;
}
return -1;
}
示例4: pipegen
static int
pipegen(struct chan *c, char *unused,
struct dirtab *tab, int ntab, int i, struct dir *dp)
{
int id, len;
struct qid qid;
Pipe *p;
if (i == DEVDOTDOT) {
devdir(c, c->qid, devname(), 0, eve, 0555, dp);
return 1;
}
i++; /* skip . */
if (tab == 0 || i >= ntab)
return -1;
tab += i;
p = c->aux;
switch (NETTYPE(tab->qid.path)) {
case Qdata0:
len = qlen(p->q[0]);
break;
case Qdata1:
len = qlen(p->q[1]);
break;
default:
len = tab->length;
break;
}
id = NETID(c->qid.path);
qid.path = NETQID(id, tab->qid.path);
qid.vers = 0;
qid.type = QTFILE;
devdir(c, qid, tab->name, len, eve, tab->perm, dp);
return 1;
}
示例5: AttachHandler
static int CCONV AttachHandler (CPhidgetHandle device, void *userptr) {
int serialNumber;
const char *name;
LocalErrorCatcher(
CPhidget_getDeviceName(device, &name));
LocalErrorCatcher(
CPhidget_getSerialNumber(device, &serialNumber));
PhidgetsDeviceManager* obj = (PhidgetsDeviceManager*)userptr;
QString devname(name);
// If the device name contains motor control in its name then emit a motor control card signal
if(devname.contains("Motor Control"))
{
obj->pushToMotorControlCardSerials(serialNumber);
// emit obj->motorCard(serialNumber);
}
else if(devname.contains("InterfaceKit"))
{
obj->setInterfaceKitSerial(serialNumber);
}
printf("Hello Device %s, Serial Number: %d\n", name, serialNumber);
return 0;
}
示例6: tap_open
int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required)
{
int fd;
char *dev;
struct stat s;
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
/* if no ifname is given, always start the search from tap0. */
int i;
char dname[100];
for (i = 0; i < 10; i++) {
if (*ifname) {
snprintf(dname, sizeof dname, "/dev/%s", ifname);
} else {
snprintf(dname, sizeof dname, "/dev/tap%d", i);
}
TFR(fd = open(dname, O_RDWR));
if (fd >= 0) {
break;
}
else if (errno == ENXIO || errno == ENOENT) {
break;
}
if (*ifname) {
break;
}
}
if (fd < 0) {
error_report("warning: could not open %s (%s): no virtual network emulation",
dname, strerror(errno));
return -1;
}
#else
TFR(fd = open("/dev/tap", O_RDWR));
if (fd < 0) {
fprintf(stderr, "warning: could not open /dev/tap: no virtual network emulation\n");
return -1;
}
#endif
fstat(fd, &s);
dev = devname(s.st_rdev, S_IFCHR);
pstrcpy(ifname, ifname_size, dev);
if (*vnet_hdr) {
/* BSD doesn't have IFF_VNET_HDR */
*vnet_hdr = 0;
if (vnet_hdr_required && !*vnet_hdr) {
error_report("vnet_hdr=1 requested, but no kernel "
"support for IFF_VNET_HDR available");
close(fd);
return -1;
}
}
fcntl(fd, F_SETFL, O_NONBLOCK);
return fd;
}
示例7: stat2proc
/* return 1 if it works, or 0 for failure */
static gboolean
stat2proc (pid_t pid,
CkProcessStat *P)
{
struct kinfo_proc2 p;
char *ttname;
int num;
int tty_maj;
int tty_min;
if (! get_kinfo_proc (pid, &p)) {
return FALSE;
}
num = KI_MAXCOMLEN;
if (num >= sizeof(P->cmd)) {
num = sizeof(P->cmd) - 1;
}
memcpy (P->cmd, p.p_comm, num);
P->cmd[num] = '\0';
P->pid = p.p_pid;
P->ppid = p.p_ppid;
P->pgrp = p.p__pgid;
P->session = p.p_sid;
P->rss = p.p_vm_rssize;
P->vsize = p.p_vm_dsize + p.p_vm_dsize + p.p_vm_ssize; /* XXX */
P->start_time = p.p_ustart_sec;
P->wchan = (unsigned long) p.p_wchan;
P->state = p.p_stat;
P->nice = p.p_nice;
P->flags = p.p_realflag;
P->tpgid = p.p_tpgid;
P->processor = p.p_cpuid;
P->nlwp = p.p_nlwps;
/* we like it Linux-encoded :-) */
tty_maj = major (p.p_tdev);
tty_min = minor (p.p_tdev);
P->tty = DEV_ENCODE (tty_maj,tty_min);
snprintf (P->tty_text, sizeof(P->tty_text), "%3d,%-3d", tty_maj, tty_min);
if (p.p_tdev != NODEV && (ttname = devname (p.p_tdev, S_IFCHR)) != NULL) {
memcpy (P->tty_text, ttname, sizeof(P->tty_text));
}
if (p.p_tdev == NODEV) {
/* XXXJDM nasty hack */
memcpy (P->tty_text, "/dev/ttyE4", sizeof(P->tty_text));
}
if (P->pid != pid) {
return FALSE;
}
return TRUE;
}
示例8: error
static struct chan *rootattach(char *spec)
{
struct chan *c;
if (*spec)
error(EINVAL, ERROR_FIXME);
c = devattach(devname(), spec);
mkqid(&c->qid, roottab[0].qid.path, roottab[0].qid.vers, QTDIR);
return c;
}
示例9: TunName
/* Get the name of the tun device using file descriptor */
void TunName(int tunfd, char *name) {
struct stat sbuf;
char *internal_buffer;
if (fstat(tunfd,&sbuf) != -1) {
internal_buffer = devname(sbuf.st_rdev, S_IFCHR);
strcpy(name,internal_buffer);
}
}
示例10: kprofattach
static struct chan*
kprofattach(char *spec)
{
// Did we initialise completely?
if ( !(oprof_alarms && kprof.buf && kprof.systrace) )
error(ENOMEM, NULL);
return devattach(devname(), spec);
}
示例11: SYSTEM_SWAP_SIZE
int SYSTEM_SWAP_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result)
{
/*
* FreeBSD 7.0 i386
*/
#ifdef XSWDEV_VERSION /* defined in <vm/vm_param.h> */
char *swapdev, *mode;
int mib[16], *mib_dev;
size_t sz, mib_sz;
struct xswdev xsw;
zbx_uint64_t total = 0, used = 0;
if (2 < request->nparam)
return SYSINFO_RET_FAIL;
swapdev = get_rparam(request, 0);
mode = get_rparam(request, 1);
sz = ARRSIZE(mib);
if (-1 == sysctlnametomib("vm.swap_info", mib, &sz))
return FAIL;
mib_sz = sz + 1;
mib_dev = &(mib[sz]);
*mib_dev = 0;
sz = sizeof(xsw);
while (-1 != sysctl(mib, mib_sz, &xsw, &sz, NULL, 0))
{
if (NULL == swapdev || '\0' == *swapdev || 0 == strcmp(swapdev, "all") /* default parameter */
|| 0 == strcmp(swapdev, devname(xsw.xsw_dev, S_IFCHR)))
{
total += (zbx_uint64_t)xsw.xsw_nblks;
used += (zbx_uint64_t)xsw.xsw_used;
}
(*mib_dev)++;
}
if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "free")) /* default parameter */
SET_UI64_RESULT(result, (total - used) * getpagesize());
else if (0 == strcmp(mode, "total"))
SET_UI64_RESULT(result, total * getpagesize());
else if (0 == strcmp(mode, "used"))
SET_UI64_RESULT(result, used * getpagesize());
else if (0 == strcmp(mode, "pfree"))
SET_DBL_RESULT(result, total ? ((double)(total - used) * 100.0 / (double)total) : 0.0);
else if (0 == strcmp(mode, "pused"))
SET_DBL_RESULT(result, total ? ((double)used * 100.0 / (double)total) : 0.0);
else
return SYSINFO_RET_FAIL;
return SYSINFO_RET_OK;
#else
return SYSINFO_RET_FAIL;
#endif
}
示例12: dm_format_dev
int dm_format_dev(char *buf, int bufsize, uint32_t dev_major,
uint32_t dev_minor)
{
int r;
uint32_t major, dm_major;
char *name;
mode_t mode;
dev_t dev;
size_t val_len,i;
struct kinfo_drivers *kd;
mode = 0;
nbsd_get_dm_major(&dm_major, DM_BLOCK_MAJOR);
if (bufsize < 8)
return 0;
if (sysctlbyname("kern.drivers",NULL,&val_len,NULL,0) < 0) {
printf("sysctlbyname failed");
return 0;
}
if ((kd = malloc (val_len)) == NULL){
printf("malloc kd info error\n");
return 0;
}
if (sysctlbyname("kern.drivers", kd, &val_len, NULL, 0) < 0) {
printf("sysctlbyname failed kd");
return 0;
}
for (i = 0, val_len /= sizeof(*kd); i < val_len; i++){
if (kd[i].d_cmajor == dev_major) {
major = kd[i].d_bmajor;
break;
}
}
dev = MKDEV(major,dev_minor);
mode |= S_IFBLK;
if ((name = devname(dev,mode)) == NULL)
name = get_dev_name(kd[i].d_name, major, dev_minor);
r = snprintf(buf, (size_t) bufsize, "/dev/%s",name);
free(kd);
if (r < 0 || r > bufsize - 1 || name == NULL)
return 0;
return 1;
}
示例13: regressattach
static struct chan*
regressattach(char *spec)
{
uint32_t n;
regress.monitor = qopen(2 << 20, 0, 0, 0);
if (! regress.monitor) {
printk("monitor allocate failed. No monitor output\n");
}
return devattach(devname(), spec);
}
示例14: udev_device_get_devnode
const char *
udev_device_get_devnode(struct udev_device *udev_device)
{
dev_t devnum;
devnum = udev_device_get_devnum(udev_device);
if (devnum == 0)
return 0;
return devname(devnum, S_IFCHR);
}
示例15: TunName
// --------------------------------------------------------------------------
// TunName: Get the name of the tun device using file descriptor.
//
void TunName(int tunfd, char *name, size_t name_len )
{
struct stat sbuf;
char *unsafe_buffer;
if( fstat( tunfd, &sbuf ) != -1 )
{
unsafe_buffer = devname(sbuf.st_rdev, S_IFCHR);
strncpy( name, unsafe_buffer, name_len );
}
}