红联Linux门户
Linux帮助

关于write函数求助!在线等,谢谢高手们

发布时间:2010-11-17 23:39:59来源:红联作者:zhangwenbo.k
[i=s] 本帖最后由 zhangwenbo.k 于 2010-11-17 23:46 编辑 [/i]

看看是哪里不对啊,今天刚学了点文件编程就编不对。
编译没错,文件包括文件夹都创建了,但是为什么buf里的内容不写在ptest.txt文件里,直接就在屏幕上就出来了,后面还跟着那个success!
我就一直等,一直等,直到有人给我找出错来。
#include
#include
#include
void main()
{
int pf;
char buf[]={"dfljsfjlsdk"};
int length;
int cf;
if(pf=creat("./ptest.txt",777)<0)
{
printf("error for creat!");
}
else
if(pf=open("ptest.txt",00070)<0)
{
printf("error for open!");
}
else
if(length=write(pf,buf,sizeof(buf))<=0)
{
printf("error for write");
}
else
{
mkdir("ctest",S_IRWXU);
if(cf=creat("./ctest/ctest.txt",777)<0)
{
printf("error for creat ctest.txt!");
}
else
printf("success!");
}
}
文章评论

共有 6 条评论

  1. xue_1103 于 2010-11-18 10:12:13发表:

    貌似if(length=write(pf,buf,sizeof(buf))<=0)
    少了一对括号吧!

  2. theset 于 2010-11-18 08:49:46发表:

    帮顶

  3. foxicel 于 2010-11-18 01:16:35发表:

    4# zhangwenbo.k


    我是说你可以把你的程序反过去看。出现了scuess.
    那么程序执行了这个程序段
    else
    {
    mkdir("ctest",S_IRWXU);
    if(cf=creat("./ctest/ctest.txt",777)<0)
    {
    printf("error for creat ctest.txt!");
    }
    else
    printf("success!");
    }
    没有执行其上一个if 段
    if(length=write(pf,buf,sizeof(buf))<=0)
    {
    printf("error for write");
    }

    其它的我就没有细看了,你可以看看。如果写数据到文件里了,不会出现success的。

  4. zhangwenbo.k 于 2010-11-18 01:06:32发表:

    2# foxicel


    那为什么buf里的字符串竟然出现在屏幕上了,要是不往文件里写也不能出现在屏幕上啊

  5. foxicel 于 2010-11-18 00:47:48发表:

    1# zhangwenbo.k


    发不上来图片呀,不好意思呀。

  6. foxicel 于 2010-11-18 00:39:19发表:

    [i=s] 本帖最后由 foxicel 于 2010-11-18 00:40 编辑 [/i]

    在屏幕上就出来了,后面还跟着那个success!

    那说明程序执行了这个段
    else
    {
    mkdir("ctest",S_IRWXU);
    if(cf=creat("./ctest/ctest.txt",777)<0)
    {
    printf("error for creat ctest.txt!");
    }
    else
    printf("success!");
    }



    没有执行
    if(length=write(pf,buf,sizeof(buf))<=0)
    {
    printf("error for write");
    }
    所以没有写数据到文件里。
    再看看前面的条件是怎么写的,可能是条件判断那里出了问题。

    说真有,格式有点不太易读呀。