| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1488 人关注过本帖
标题:C语言,主函数和自定义函数为什么不同?
只看楼主 加入收藏
观星
Rank: 2
等 级:论坛游民
帖 子:77
专家分:45
注 册:2008-5-1
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:6 
C语言,主函数和自定义函数为什么不同?
今天学习读写文件,发现一个问题,同样的语句放在主函数里面就好用
复制粘贴到自定义的函数里面就会报错?!
为什么?
我在和程序同一目录下建立了一个名字是“UserID”文件(注意没有扩展名),里面写了一个数字(比如999),
运行程序,可以打印出数字。
这个是好使的,显示结果:999
程序代码:
#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;
}

当我把主函数里面的过程复制到一个自定义的函数里面的时候,就报错??求指点
报错内容:Error in getuid: Invalid argument
程序代码:
#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;
}


 
搜索更多相关主题的帖子: C语言 扩展名 运行程序 
2011-08-13 14:57
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:20 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void getuid()
{
    FILE *fp;
    fp = fopen("UserID","r");
    int temp = 0;
    fscanf(fp,"%d",&temp);
    printf("%d\n",temp);
}
int main()
{
    getuid();
    return 0;
}
敢问楼主用的是什么编译器 什么操作系统 C语言的文件操作好像不是楼主的那样吧

                                         
===========深入<----------------->浅出============
2011-08-13 15:06
观星
Rank: 2
等 级:论坛游民
帖 子:77
专家分:45
注 册:2008-5-1
收藏
得分:0 
回复 2楼 laoyang103
我用的是 WINDOWS XP SP3的系统
编译器用的是,mingw带的gcc编译器
2011-08-13 15:11
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
我一般都是用fopen
2011-08-13 15:13
观星
Rank: 2
等 级:论坛游民
帖 子:77
专家分:45
注 册:2008-5-1
收藏
得分:0 
回复 楼主 观星
谢谢你,这样果然好用了,
我看书上说 open() close() read() write() 是四个常见的使用文件引用符的函数,
不知道为啥有时候好使,有时候不行,反正解决了,万分感谢!
2011-08-13 15:15
观星
Rank: 2
等 级:论坛游民
帖 子:77
专家分:45
注 册:2008-5-1
收藏
得分:0 
回复 2楼 laoyang103
晕,刚刚回复自己去了

谢谢你,这样果然好用了,
我看书上说 open() close() read() write() 是四个常见的使用文件引用符的函数,
不知道为啥有时候好使,有时候不行,反正解决了,万分感谢!
2011-08-13 15:16
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
以后就fopen吧 这是C的标准文件操作函数

                                         
===========深入<----------------->浅出============
2011-08-13 15:21
快速回复:C语言,主函数和自定义函数为什么不同?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017903 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved