如何判断当前程序是否正以管理员或root权限运行

本文介绍了一个通用的方法,用于判断程序是否以管理员权限运行。在Windows环境下使用IsUserAnAdmin()函数,在Linux环境下使用geteuid()函数,并提供了一个UAC.h文件实现跨平台兼容。
摘要由CSDN通过智能技术生成

在windows下,一般超级用户是管理员权限administrator;在linux下,一般超级用户是root。

  • windows下,使用IsUserAnAdmin()函数进行判断;
  • linux下,使用geteuid()函数进行判断。

编写一个UAC.h文件,使得在win/linux均可以进行判断,如下:

#ifndef UAC_H
#define UAC_H

#ifdef WIN32
// for IsUserAnAdmin()
#include <ShlObj_core.h>
#pragma comment (lib, "Shell32.lib")
#else
#include <unistd.h>
#endif

/**
 * @brief runAsAdmin
 * 判断当前程序是否以管理员权限运行,win下为administrator,linux下为root
 * @return 是否以管理员权限运行
 */
bool runAsAdmin()
{
#ifdef WIN32
    return IsUserAnAdmin(); // true, is admin
#else
    return (geteuid() == 0); // true, is root
#endif
}

#endif // UAC_H

参考链接:《如何判断当前的进程是否以root权限运行》



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值