• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ sethostname函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中sethostname函数的典型用法代码示例。如果您正苦于以下问题:C++ sethostname函数的具体用法?C++ sethostname怎么用?C++ sethostname使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了sethostname函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: do_sethostname

void do_sethostname(char *s, int isfile)
{
	FILE *f;
	char buf[255];

	if (!s)
		return;
	if (!isfile) {
		if (sethostname(s, strlen(s)) < 0) {
			if (errno == EPERM)
			{
				printf("%% you must be root to change the hostname\n");
				return;
			}
			else
			{
				printf("%% error sethostname\r\n");
				return;
			}
		}
	} else {
		f = xfopen(s, "r");
		fgets(buf, 255, f);
		fclose(f);
		if (buf[strlen(buf) - 1] == '\n')
			buf[strlen(buf) - 1] = 0;
		if (sethostname(buf, strlen(buf)) < 0)
			{
			    printf("%% error sethostname\n");
			    return;
			}    
	}
}
开发者ID:carriercomm,项目名称:myboxfs,代码行数:33,代码来源:hostname.c


示例2: ATF_TC_BODY

ATF_TC_BODY(sethostname_perm, tc)
{

	errno = 0;

	ATF_REQUIRE_ERRNO(EPERM, sethostname(host, sizeof(host)) == -1);
}
开发者ID:Hooman3,项目名称:minix,代码行数:7,代码来源:t_sethostname.c


示例3: child_main

int child_main(void* arg)
{
    char c;

    // init sync primitive
    close(checkpoint[1]);

    // setup hostname
    printf(" - [%5d] World !\n", getpid());
    sethostname("In Namespace", 12);

    // remount "/proc" to get accurate "top" && "ps" output

    chdir("root/");
    int chroot_err = chroot(".");
    if (chroot_err != 0) {
        printf("chroot error\n");
    }
    mount("proc", "/proc", "proc", 0, NULL);
    chdir("/bin");
    setuid(0);
    setgid(0);

    // wait...
    read(checkpoint[0], &c, 1);

    execv(child_args[0], child_args);
    printf("Ooops\n");
    printf("result %d\n", errno);
    return 1;
}
开发者ID:ya790206,项目名称:example_code,代码行数:31,代码来源:filesystem_namespace.c


示例4: hyper_start_containers

int hyper_start_containers(struct hyper_pod *pod)
{
	int i;

	/* mount new proc directory */
	if (umount("/proc") < 0) {
		perror("umount proc filesystem failed\n");
		return -1;
	}

	if (mount("proc", "/proc", "proc", 0, NULL) < 0) {
		perror("mount proc filesystem failed\n");
		return -1;
	}

	if (sethostname(pod->hostname, strlen(pod->hostname)) < 0) {
		perror("set host name failed");
		return -1;
	}

	for (i = 0; i < pod->c_num; i++)
		hyper_start_container(&pod->c[i]);

	return 0;
}
开发者ID:jefby,项目名称:hyperstart,代码行数:25,代码来源:container.c


示例5: main

int main() {
  const char * old_domain_name = get_domain_name();
  const char * old_host_name = get_host_name();

  step("parent: old domainname: %s", old_domain_name);
  step("parent: old hostname: %s", old_host_name);

  step("parent: fork");
  if (fork()) {
    step("parent: wait for child to exit");
    int status = 0;
    do wait(&status); while (!WIFEXITED(status));

    assertStrEquals("parent: domain name", old_domain_name, get_domain_name());
    assertStrEquals("parent: host name", old_host_name, get_host_name());
  } else {
    step("child: create container with separate uts namespace");
    struct slc_create_container_parameters params;
    initialize_default_fs_root(&params.fs_root);
    slc_create_container(&params, 0);

    const char * new_domain_name = "new_domain_name";
    const char * new_host_name = "new_host_name";
    
    step("child: set domain name to '%s'", new_domain_name);
    setdomainname(new_domain_name, strlen(new_domain_name));
    assertStrEquals("child: domain name", new_domain_name, get_domain_name());
    
    step("child: set host name to '%s'", new_host_name);
    sethostname(new_host_name, strlen(new_host_name));
    assertStrEquals("child: host name", new_host_name, get_host_name());
  }

  return 0;
}
开发者ID:alkedr,项目名称:simple-linux-containers,代码行数:35,代码来源:test_uts_namespace.c


示例6: SetHostName

TError SetHostName(const std::string &name) {
    int ret = sethostname(name.c_str(), name.length());
    if (ret < 0)
        return TError(EError::Unknown, errno, "sethostname(" + name + ")");

    return TError::Success();
}
开发者ID:direvius,项目名称:porto,代码行数:7,代码来源:unix.cpp


示例7: child_main

int child_main(void* arg)
{
  char c;

  // init sync primitive
  close(checkpoint[1]);

  // setup hostname
  printf(" - [%5d] World !\n", getpid());
  sethostname("In Namespace", 12);

  // remount "/proc" to get accurate "top" && "ps" output
  mount("proc", "/proc", "proc", 0, NULL);

  // wait for network setup in parent
  read(checkpoint[0], &c, 1);

  // setup network
  system("ip link set lo up");
  system("ip link set veth1 up");
  system("ip addr add 169.254.1.2/30 dev veth1");

  execv(child_args[0], child_args);
  printf("Ooops\n");
  return 1;
}
开发者ID:gwtony,项目名称:c-example,代码行数:26,代码来源:net_namespace.c


示例8: context_update_kernel_hostname

static int context_update_kernel_hostname(Context *c) {
        const char *static_hn;
        const char *hn;

        assert(c);

        static_hn = c->data[PROP_STATIC_HOSTNAME];

        /* /etc/hostname with something other than "localhost"
         * has the highest preference ... */
        if (hostname_is_useful(static_hn))
                hn = static_hn;

        /* ... the transient host name, (ie: DHCP) comes next ...*/
        else if (!isempty(c->data[PROP_HOSTNAME]))
                hn = c->data[PROP_HOSTNAME];

        /* ... fallback to static "localhost.*" ignored above ... */
        else if (!isempty(static_hn))
                hn = static_hn;

        /* ... and the ultimate fallback */
        else
                hn = "localhost";

        if (sethostname(hn, strlen(hn)) < 0)
                return -errno;

        return 0;
}
开发者ID:klausi,项目名称:systemd,代码行数:30,代码来源:hostnamed.c


示例9: loopback_set_hostname

static int loopback_set_hostname(const char *hostname)
{
	const char *ptr;
	int err, len;

	if (g_strcmp0(hostname, "<hostname>") == 0)
		return 0;

	len = strlen(hostname);

	if (connman_inet_check_hostname(hostname, len) == FALSE)
		return -EINVAL;

	if ((ptr = strstr(hostname, ".")) != NULL)
		len = ptr - hostname;

	if (sethostname(hostname, len) < 0) {
		err = -errno;
		connman_error("Failed to set hostname to %s", hostname);
		return err;
	}

	connman_info("Setting hostname to %s", hostname);

	return 0;
}
开发者ID:connectivity,项目名称:connman-stable,代码行数:26,代码来源:loopback.c


示例10: command_hostname

int command_hostname (int argc, char **argv)
{
   char hostname[MAXHOSTNAMELEN];

   progname = argv[0];
   
   if (argc == 1)
   {
      if (gethostname (hostname, MAXHOSTNAMELEN) < 0)
         error ("cannot get hostname: %s", strerror (errno));
      puts (hostname);
      return (EXIT_SUCCESS);
   }
   else if (argc == 2)
   {
      if (!strcmp (argv[1], "--help"))
         puts (help_text);
      else if (!strcmp (argv[1], "--version"))
         puts ("hostname: version "VERSION);
      else
      {
         if (sethostname (argv[1], strlen (argv[1])) < 0)
            error ("cannot set hostname: %s", strerror (errno));
      }
   }
   else
      terror ("too many arguments");
      
   return (EXIT_SUCCESS);
}
开发者ID:bproctor,项目名称:utils,代码行数:30,代码来源:hostname.c


示例11: cleanup

/*
 * cleanup()  - performs all one time cleanup for this test
 *		completion or premature exit.
 */
void
cleanup()
{
	int ret;
	/*
	 * print timing stats if that option was specified.
	 * print errno log if that option was specified.
	 */
	TEST_CLEANUP;

	 /* Set effective user id back to root/super user */
	if (seteuid(0) == -1) {
		tst_resm(TWARN, "seteuid failed to "
			"to set the effective uid to root" );
		perror("seteuid");
	}

	/* Restore host name */
	if( (ret = sethostname (hname, strlen(hname))) < 0 ) {
		tst_resm(TWARN, "sethostname() failed while restoring"
			" hostname to \"%s\"", hname);
	} 

	/* exit with return code appropriate for results */
	tst_exit();
}
开发者ID:CSU-GH,项目名称:okl4_3.0,代码行数:30,代码来源:sethostname03.c


示例12: uwsgi_hook_hostname

static int uwsgi_hook_hostname(char *arg) {
#ifdef __CYGWIN__
	return -1;
#else
	return sethostname(arg, strlen(arg));
#endif
}
开发者ID:austinglaser,项目名称:csci3308-project,代码行数:7,代码来源:hooks.c


示例13: container_main

int container_main(void * arg) {
    printf("Container - inside the container!\n"); 
    sethostname("container",10); /* 设置hostname */
    execv(container_args[0], container_args);
    printf("Something's wrong\n");
    return 1;
}
开发者ID:defrur,项目名称:coding-journal,代码行数:7,代码来源:uts.c


示例14: nm_policy_set_system_hostname

gboolean
nm_policy_set_system_hostname (const char *new_hostname, const char *msg)
{
	char old_hostname[HOST_NAME_MAX + 1];
	const char *name;
	int ret;

	if (new_hostname)
		g_warn_if_fail (strlen (new_hostname));

	old_hostname[HOST_NAME_MAX] = '\0';
	errno = 0;
	ret = gethostname (old_hostname, HOST_NAME_MAX);
	if (ret != 0) {
		nm_log_warn (LOGD_DNS, "couldn't get the system hostname: (%d) %s",
		             errno, strerror (errno));
	} else {
		/* Don't set the hostname if it isn't actually changing */
		if (   (new_hostname && !strcmp (old_hostname, new_hostname))
		    || (!new_hostname && !strcmp (old_hostname, FALLBACK_HOSTNAME4)))
			return FALSE;
	}

	name = (new_hostname && strlen (new_hostname)) ? new_hostname : FALLBACK_HOSTNAME4;

	nm_log_info (LOGD_DNS, "Setting system hostname to '%s' (%s)", name, msg);
	ret = sethostname (name, strlen (name));
	if (ret != 0) {
		nm_log_warn (LOGD_DNS, "couldn't set the system hostname to '%s': (%d) %s",
		             name, errno, strerror (errno));
	}

	return (ret == 0);
}
开发者ID:alfmatos,项目名称:NetworkManager,代码行数:34,代码来源:nm-policy-hostname.c


示例15: TEST

TEST(UNISTD_TEST, sethostname) {
  // The permissions check happens before the argument check, so this will
  // fail for a different reason if you're running as root than if you're
  // not, but it'll fail either way. Checking that we have the symbol is about
  // all we can do for sethostname(2).
  ASSERT_EQ(-1, sethostname("", -1));
}
开发者ID:0xDEC0DE8,项目名称:platform_bionic,代码行数:7,代码来源:unistd_test.cpp


示例16: main

int main(int ac, char **av)
{
    int lc;

    tst_parse_opts(ac, av, NULL, NULL);

    /* Do initial setup */
    setup();

    /* Check for looping state if -i option is given */
    for (lc = 0; TEST_LOOPING(lc); lc++) {

        tst_count = 0;

        /* call sethostname() */
        TEST(sethostname(ltpthost, sizeof(ltpthost)));

        if ((TEST_RETURN == -1) && (TEST_ERRNO == EPERM)) {
            tst_resm(TPASS, "Expected Failure; Got EPERM");
        } else {
            tst_resm(TFAIL, "call failed to produce "
                     "expected error;  errno: %d : %s",
                     TEST_ERRNO, strerror(TEST_ERRNO));
        }

    }

    /* cleanup and exit */
    cleanup();
    tst_exit();

}
开发者ID:Nan619,项目名称:ltp,代码行数:32,代码来源:sethostname03.c


示例17: strlen

static PyObject *_agentlib_sethostname(PyObject *self, PyObject *args)
{
    char *host_string;
    int err;
    size_t host_len;

    if (!PyArg_ParseTuple(args, "s", &host_string))
    {
        return NULL;
    }

    host_len = strlen(host_string);
    if (host_len > 63)
        host_len = 63;

    err = sethostname(host_string, host_len);
    if (err < 0)
    {
        err = errno;
        return PyErr_Format(PyExc_SystemError,
                "sethostname() failed with errno '%d'", err);
    }

    Py_RETURN_NONE;
}
开发者ID:csdhome,项目名称:openstack-guest-agents-unix,代码行数:25,代码来源:agentlib.c


示例18: do_sethostname

static void do_sethostname(char *s, int isfile)
{
	FILE *f;
	char buf[255];

	if (!s)
		return;
	if (!isfile) {
		if (sethostname(s, strlen(s)) < 0) {
			if (errno == EPERM)
				bb_error_msg_and_die("you must be root to change the hostname");
			else
				bb_perror_msg_and_die("sethostname");
		}
	} else {
		f = bb_xfopen(s, "r");
		while (fgets(buf, 255, f) != NULL) {
			if (buf[0] =='#') {
				continue;
			}
			chomp(buf);
			do_sethostname(buf, 0);
		}
#ifdef CONFIG_FEATURE_CLEAN_UP
		fclose(f);
#endif
	}
}
开发者ID:cmtsij,项目名称:Vizio_XWR100_GPL,代码行数:28,代码来源:hostname.c


示例19: childFunc

static int childFunc(void *arg) {
  struct utsname uts;
  sethostname(arg, strlen(arg)); /* Change hostname in UTS namespace of child */
  uname(&uts); /* Retrieve hostname - uses an output parameter */
  printf("uts.nodename in child:  %s\n", uts.nodename);
  return 0;
}
开发者ID:badrij,项目名称:nsplayground,代码行数:7,代码来源:utsns.c


示例20: main

int main(int argc, char *argv[]) {
	if(argc != 2) {
		printf("Use : %s [ hostname ]\n", argv[0]);
		return 0;
	}
	struct utsname uts;
	int pid = fork();

	if(pid == 0) {
		unshare(CLONE_NEWUTS);
		if(sethostname(argv[1], strlen(argv[1])) != 0) {
			printf("sethostname() failed\n");
			return 0;
		}
		uname(&uts);
		printf("Child hostname : %s\n", uts.nodename);
		
		return 0;
	}

	uname(&uts);
	printf("Parent hostname : %s\n", uts.nodename);

	return 0;
}
开发者ID:mavr,项目名称:niitm-linux-2015,代码行数:25,代码来源:main.c



注:本文中的sethostname函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ sethvalue函数代码示例发布时间:2022-05-30
下一篇:
C++ setgroups函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap