当前位置:  技术问答>linux和unix

请问如何在unix/linux环境下编程实现辨别当前程序执行者用户名和系统类型(linux or unix)

    来源: 互联网  发布时间:2014-12-11

    本文导语:  同上 | //获得用户名,请你在qt下试试看,行不行? int fgetline(FILE *fp,char *buf); int main() { FILE *fp; int uid,ret=1,i; char buf[1024],user[128]; char *p,*q; if( ( fp = fopen("/etc/passwd","r") ) == NULL ){ ...

同上

|
//获得用户名,请你在qt下试试看,行不行?
int fgetline(FILE *fp,char *buf);

int main()
{
FILE *fp;
int uid,ret=1,i;
char buf[1024],user[128];
char *p,*q;

if( ( fp = fopen("/etc/passwd","r") ) == NULL ){
printf("fopen errorn");
return -1;
}

uid = getuid();
printf("uid=%dn",uid);
ret = fgetline(fp,buf);
while(ret!=-1){
q=buf;
i = 0;
while((p=(char *)strtok(q,":"))){
i++;
if( i == 1 ) //第一个域是username
strcpy(user,p);
if( i == 3 )//第三个域是uid
break;
q +=strlen(p)+1;
}
if( atoi(p) == uid ){
puts(user);
break;
}
ret = fgetline(fp,buf);
}
fclose( fp );
return 1;
}
int fgetline(FILE *fp,char *buf)
{
int c=0,count=0;

while(!feof(fp)){
c = fgetc(fp);
if( c == 'n' )
break;
buf[count]=c;
count++;
}
buf[count]='';
if( count 

    
 
 

您可能感兴趣的文章:

  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 搞了几年软件开发,Linux没有摸过,请问安装Linux什么版本比较好
  • 请问LINUX内核下,哪些文件夹下的文件是跟LINUX的硬件平台无关的?
  • 请问初学习Linux及Linux下编程的好书?
  • 我下载了一个LINUX,是.ISO文件格式的,请问怎么在用硬盘安装LINUX啊?
  • 请问:除了Red Hat Linux还有什么其他什么Linux?
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 以前没有接触过linux,现要在linux上写一个软件,请问我要看那些资料!
  • 我想用Linux的串口和S3c2410x连接,请问在Linux里面怎么找到那个超级终端?
  • 初学Linux要看什么书?, 请问Linux下C语言编程怎么设置环境?
  • 本人想学习linux,请问哪里有比较小的linux版本
  • 请问:构建嵌入式linux环境时,“Linux内核的移植”是达到什么目的啊?
  • 初用Linux,请问各位大侠,哪一款Linux支持Oracle9i
  • 请问windows 2000怎么访问linux?我要从linux下拷文件到windows下
  • 先装LINUX 10后装XP,启动进不了Linux,请问怎么解决?
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • 想学习linux 编程,请问一下,用什么版本的linux好啊,什么地方有下载?谢了
  • 请问哪有 arm-linux-nm, arm-linux-addr2line等等这些工具的使用说明~~~
  • 请问各位大虾:笔记本安装Linux的多吗?还有,笔记本对Linux的支持好吗?
  • 请问在高版本linux编译链接的程序如何在低版本Linux上运行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问各位unix大虾,哪有免费的unix下载?
  • 能够在微型机(Intel系列)上面安装UNIX吗?如果可以,请问哪个UNIX最好用?
  • 我是unix初学者,请问哪里有unix的命令集?
  • 请问:我的机器上安装了Unix和Windows 2000两个系统,如果我要重装Unix该怎么办?
  • 请问,在unix下,关闭oracle数据库和重起unix,的正确顺序和命令应该是怎样的!请教!
  • 请问哪种UNIX可以装在PC上?UNIX系统下开发可以用什么语言?给分!
  • 请问我要学unix该从何入手,装哪个版本的unix适合,哪本参考书!谢!
  • 我是菜鸟,听说去银行工作最好精通unix,可我现在学的是基于win2000的《现代操作系统》请问对以后学unix帮助大吗?
  • 请问没有UNIX操作系统,怎么学习UNIX?
  • 请问unix 操作系统是窗口界面还是文字界面的?
  • 请问各位大侠,有哪位知道哪个软件在windows下访问到unix系统里
  • 请问Unix和Linux有什么区别?现在应该学哪个好?
  • 请问有模拟UNIX的小软件吗?
  • 请问在UNIX中有那些常用的命令,其功能是什么!
  • 请问哪位仁兄知道哪里有UNIX方面的书籍下载
  • 小妹请问哪里有UNIX虚拟机下载
  • 请问各位大鸟,现在UNIX/LINUX主流平台是什么
  • 请问在UNIX下如何解压.tar.gz文件
  • 请问,linux和unix到底有什么区别,可不可以通过安装学习linux来掌握unix的命令等知识?
  • 看Unix环境高级编程,提到了V和bsd,有很多不同,但是没有提到Linux,请问linux跟BSD或者unix V 编程细节哪些不同的,特别是线程,进程,和socke
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问各位unix大虾,哪有免费的unix下载? iis7站长之家
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3