我在输入 open 时遇到问题如果我的第一个参数是路径,我会得到以下输出:
打开时出错:没有这样的文件或目录
但是如果它的文件名没有错误,如何修复它?代码如下:
#include<sys/types.h> //Primitive system data types for abstraction of implementation-dependent data types.
//POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
char buf1[]="abcdefghij";
char buf2[]="ABCDEFGHIJ";
int main(int argc, char *argv[])
{
int fd;
if( (fd=open(argv[1],O_CREAT|O_TRUNC|O_WRONLY,S_IRUSR|S_IWUSR))<0) {
printf("\nError %d en open",errno);
perror("\nError en open");
exit(-1);
}
if(write(fd,buf1,10) != 10) {
perror("\nError en primer write");
exit(-1);
}
if(lseek(fd,40,SEEK_SET) < 0) {
perror("\nError en lseek");
exit(-1);
}
if(write(fd,buf2,10) != 10) {
perror("\nError en segundo write");
exit(-1);
}
return 0;
}
测试顺序为:
root@ubuntu:/home/pablo/...# ./tarea1 /home/pablo/hello > temp ; cat temp
root@ubuntu:/home/pablo/...# ./tarea1 /home/pablo/>hello ; cat hello
Error en open: Is a directory