主题:[讨论]主函数里面的代码复制到自定义函数里就报错?
今天学习读写文件,发现一个问题,同样的语句放在主函数里面就好用
复制粘贴到自定义的函数里面就会报错?!
为什么?
我在和程序同一目录下建立了一个名字是“UserID”文件(注意没有扩展名),里面写了一个数字(比如999),
运行程序,可以打印出数字。
这个是好使的,显示结果:999
[code=c]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
int main()
{
int fd;
fd=open("UserID",O_RDWR,S_IRUSR|S_IWUSR);
char *buffer;
if(read(fd,buffer,3)==-1)
{
perror("Error in getuid");
exit(-1);
}
printf(buffer);
close(fd);
return 0;
}
[/code]
当我把主函数里面的过程复制到一个自定义的函数里面的时候,就报错??下面这个就出错代码,
求指点
报错内容:Error in getuid: Invalid argument
[code=c]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
void getuid()
{
int fd;
fd=open("UserID",O_RDWR,S_IRUSR|S_IWUSR);
char *buffer;
if(read(fd,buffer,3)==-1)
{
perror("Error in getuid");
exit(-1);
}
printf(buffer);
close(fd);
}
int main()
{
getuid();
return 0;
}
[/code]
复制粘贴到自定义的函数里面就会报错?!
为什么?
我在和程序同一目录下建立了一个名字是“UserID”文件(注意没有扩展名),里面写了一个数字(比如999),
运行程序,可以打印出数字。
这个是好使的,显示结果:999
[code=c]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
int main()
{
int fd;
fd=open("UserID",O_RDWR,S_IRUSR|S_IWUSR);
char *buffer;
if(read(fd,buffer,3)==-1)
{
perror("Error in getuid");
exit(-1);
}
printf(buffer);
close(fd);
return 0;
}
[/code]
当我把主函数里面的过程复制到一个自定义的函数里面的时候,就报错??下面这个就出错代码,
求指点
报错内容:Error in getuid: Invalid argument
[code=c]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
void getuid()
{
int fd;
fd=open("UserID",O_RDWR,S_IRUSR|S_IWUSR);
char *buffer;
if(read(fd,buffer,3)==-1)
{
perror("Error in getuid");
exit(-1);
}
printf(buffer);
close(fd);
}
int main()
{
getuid();
return 0;
}
[/code]