91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 193KB
    文件類型: .bz2
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-27
  • 語(yǔ)言: 其他
  • 標(biāo)簽: udev-100.tar??

資源簡(jiǎn)介

udev是一種工具,它能夠根據(jù)系統(tǒng)中的硬件設(shè)備的狀態(tài)動(dòng)態(tài)更新設(shè)備文件,包括設(shè)備文件的創(chuàng)建,刪除等。設(shè)備文件通常放在/dev目錄下。使用udev后,在/dev目錄下就只包含系統(tǒng)中真正存在的設(shè)備。

資源截圖

代碼片段和文件信息

/*
?*?Copyright?(C)?2003-2004?Greg?Kroah-Hartman?
?*?Copyright?(C)?2004-2006?Kay?Sievers?
?*
?* This?program?is?free?software;?you?can?redistribute?it?and/or?modify?it
?* under?the?terms?of?the?GNU?General?Public?License?as?published?by?the
?* Free?Software?Foundation?version?2?of?the?License.
?*?
?* This?program?is?distributed?in?the?hope?that?it?will?be?useful?but
?* WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?* MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the?GNU
?* General?Public?License?for?more?details.
?*?
?* You?should?have?received?a?copy?of?the?GNU?General?Public?License?along
?* with?this?program;?if?not?write?to?the?Free?Software?Foundation?Inc.
?* 51?Franklin?Street?Fifth?Floor?Boston?MA??02110-1301?USA.
?*
?*/

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

#include?“udev.h“
#include?“udev_rules.h“
#include?“udev_selinux.h“

#ifdef?USE_LOG
void?log_message(int?priority?const?char?*format?...)
{
va_list?args;

if?(priority?>?udev_log_priority)
return;

va_start(args?format);
vsyslog(priority?format?args);
va_end(args);
}
#endif

static?void?asmlinkage?sig_handler(int?signum)
{
switch?(signum)?{
case?SIGALRM:
exit(1);
case?SIGINT:
case?SIGTERM:
exit(20?+?signum);
}
}

int?main(int?argc?char?*argv[]?char?*envp[])
{
struct?sysfs_device?*dev;
struct?udevice?*udev;
const?char?*maj?*min;
struct?udev_rules?rules;
const?char?*action;
const?char?*devpath;
const?char?*subsystem;
struct?sigaction?act;
int?devnull;
int?retval?=?-EINVAL;

if?(argc?==?2?&&?strcmp(argv[1]?“-V“)?==?0)?{
printf(“%s\n“?UDEV_VERSION);
exit(0);
}

/*?set?std?fd‘s?to?/dev/null?/sbin/hotplug?forks?us?we?don‘t?have?them?at?all?*/
devnull?=?open(“/dev/null“?O_RDWR);
if?(devnull?>=?0)??{
if?(devnull?!=?STDIN_FILENO)
dup2(devnull?STDIN_FILENO);
if?(devnull?!=?STDOUT_FILENO)
dup2(devnull?STDOUT_FILENO);
if?(devnull?!=?STDERR_FILENO)
dup2(devnull?STDERR_FILENO);
if?(devnull?>?STDERR_FILENO)
close(devnull);
}

logging_init(“udev“);
if?(devnull? err(“open?/dev/null?failed:?%s“?strerror(errno));
udev_config_init();
selinux_init();
dbg(“version?%s“?UDEV_VERSION);

/*?set?signal?handlers?*/
memset(&act?0x00?sizeof(act));
act.sa_handler?=?(void?(*)(int))?sig_handler;
sigemptyset?(&act.sa_mask);
act.sa_flags?=?0;
sigaction(SIGALRM?&act?NULL);
sigaction(SIGINT?&act?NULL);
sigaction(SIGTERM?&act?NULL);

/*?trigger?timeout?to?prevent?hanging?processes?*/
alarm(UDEV_ALARM_TIMEOUT);

action?=?getenv(“ACTION“);
devpath?=?getenv(“DEVPATH“);
subsystem?=?getenv(“SUBSYSTEM“);
/*?older?kernels?passed?the?SUBSYSTEM?only?as?argument?*/
if?(subsystem?==?NULL?&&?argc?==?2)
subsystem?=?argv[1];

if?(action?==?NULL?||?subsystem?==?NULL?||?devpath?==?NULL)?{
err(“ac

評(píng)論

共有 條評(píng)論

相關(guān)資源