Мне нужно использовать функцию open () для создания файла, если он не существует, но если это так, то для очистки данных этого файла.
Вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int f_open(const char *name, int oflag, mode_t mode);
int f_open(const char *name, int oflag, mode_t mode){
int dskr;
dskr = open( name, O_WRONLY );
if( dskr == -1 ){
perror( name );
exit(1);
}
printf( "dskr = %d\n", dskr );
return dskr;
}
int main( int argc, char *argv[] ){
int d;
int f;
if( argc != 2 ){
printf( "Naudojimas:\n %s failas_ar_katalogas\n", argv[0] );
exit( 255 );
}
d = f_open( argv[1], O_CREAT | O_TRUNC, 0644 );
return 0;
}
КогдаЯ выполняю его и записываю несуществующий файл, затем вывод no such a file or directory
, но мне нужно создать этот файл.Или, если я написал существующий файл с некоторым текстом, эти данные не очистились.