46.获取文件的用户名和用户组名的函数

1.获取用户名:
       #include <sys/types.h>
       #include <pwd.h>
       struct passwd *getpwuid(uid_t uid);
       
       用法:char* fileUser = getpwuid(st.st_uid)->pw_name;

2.获取用户组名:
       #include <sys/types.h>
       #include <grp.h>
       struct group *getgrgid(gid_t gid);

       用法:char* fileGrp = getgrgid(st.st_gid)->gr_name;


注意:st为struct stat结构体,在通过查询stat函数(man 2 stat)来获知基本信息,头文件如下:

       #include <sys/types.h>
       #include <sys/stat.h>
       #include <unistd.h>

       int stat(const char *path, struct stat *buf);

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个需要进行用户验证的登录功能。具体实现方式如下: 1. 创建一个登录窗口,包括用户名和密码的输入框以及登录按钮。 2. 当点击登录按钮时,获取输入框中的用户名和密码。 3. 读取文件user.txt,逐行比对每一组用户账号的用户名和密码是否与输入的一致。 4. 如果匹配成功,则弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。 下面是一个简单的Python代码实现: ```python import tkinter as tk def login(): username = username_entry.get() password = password_entry.get() with open('user.txt', 'r') as f: for line in f: user_info = line.strip().split(',') if username == user_info[0] and password == user_info[1]: tk.messagebox.showinfo('登录成功!', '欢迎使用本系统!') # 在这里打开子窗口 return tk.messagebox.showerror('登录失败', '用户名或密码错误!') # 创建登录窗口 root = tk.Tk() root.title('登录') root.geometry('300x150') # 创建用户名和密码输入框 username_label = tk.Label(root, text='用户名:') username_label.place(x=30, y=30) username_entry = tk.Entry(root) username_entry.place(x=100, y=30) password_label = tk.Label(root, text='密 码:') password_label.place(x=30, y=70) password_entry = tk.Entry(root, show='*') password_entry.place(x=100, y=70) # 创建登录按钮 login_button = tk.Button(root, text='登录', command=login) login_button.place(x=120, y=110) root.mainloop() ``` 在代码中,我们首先读取user.txt文件中的每一行数据,使用strip()函数去除行末的空格和换行符,并使用split(',')函数用户名和密码分离出来。随后,逐行比对输入的用户名和密码是否与文件中的一致,如果匹配成功,则弹出提示框,否则弹出错误提示框。 当然,在实际应用中,我们需要对用户输入的用户名和密码进行更加严格的校验,避免SQL注入等攻击。同时,我们也可以增加更多的功能,例如记住密码、自动登录等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值