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

就一行简单的代码,程序执行却错误,N久没有搞明白

    来源: 互联网  发布时间:2015-10-07

    本文导语:  test.c #include #include int main() {   char *s[256];   printf("%sn",getlogin());   /*显示当前登陆名,结果显示(null),即错误*/   strcpy(s,getlogin());        /*把当前登陆名复制到一个字符串中,运行显示段错误,程序被终止...

test.c

#include
#include

int main() {
  char *s[256];
  printf("%sn",getlogin());   /*显示当前登陆名,结果显示(null),即错误*/
  strcpy(s,getlogin());        /*把当前登陆名复制到一个字符串中,运行显示段错误,程序被终止*/
  return 0;
  }

关键在系统函数getlogin()不能正确执行;
man getlogin
显示:
SYONPSIS
    #include 
    char *getlogin(void);


我的环境为Red Hat Linux 9
不知道哪里出了问题?

|
为什么要char *s[256]
char s[256]不行么?
你在搞什么?

|
#include 
#include 

int main()
{
char s[500];

printf("LOGIN: %sn", getlogin());

snprintf(s, sizeof(s), "%s", getlogin());
printf("%sn", s);

}

#gcc getlogin.c
#./a.out
 LOGIN: root
 root

|
printf("%sn",getlogin());   /*显示当前登陆名,结果显示(null),即错误*/
是不是你没有登陆?

|
up

|

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 getline():读取一行字符
  • JAVA是怎么一行一行地读文本文件,并把每一行区分开来的?谢谢!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 我想取出所有的数据记录,然后一行三个一行三个的显示出来。。。一行够三个了就换行,怎么换到第二行?
  • read函数读取文件时如何一行一行的读取,请指教!
  • 请问:我读文件数据时,我发现最后一行老是读出两次,但如果我在windows下就只有一行,这是什么原因啊?
  • Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
  • 请问Java中如何在控制台一行内输入n个数字,然后再在一行内输出这些数字
  • 请问读文件时,每次读一行,作一个循环,怎么让它每次都从文件的第一行读?
  • vim中一行内容太多折行,用移动命令却无法移动到中间一行
  • 我在table中选中一行删除后,数据库中是删除了,但我的table中这一行还显示,我怎么让他不显示??
  • 请教shell for while 循环用来一行一行读取文件内容的区别
  • 内核态下 如何从文本文档中一行一行获取数据
  • unix下用c程序如何实现一行一行的复制数据
  • 请问一下如何在文件中一行一行的读取啊?
  • 江湖告急:如何用UltraEdit在每一个文件的第一行插入新的一行句子
  • 如何一行一行读取unicode文件内容,C
  • 请问如何将一个文本文件一行一行读进一个列表框。我用的是vj++.
  • 如何用awk或命令让 a.txt 里的内容一行一行分开显示为html文件
  • 读取文本文件最后一行
  • linux + apache+php+mysql 修改那一行?


  • 站内导航:


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

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

    浙ICP备11055608号-3