libc: add creat function implementation

accoring to the PSE52 requirements, the creat() need to implementation
as a function.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
This commit is contained in:
guoshichao
2025-08-21 10:43:09 +08:00
committed by Xiang Xiao
parent d7ea114fb8
commit efa6c6823b
4 changed files with 59 additions and 12 deletions
+1
View File
@@ -28,6 +28,7 @@ list(
SRCS
lib_bitmap.c
lib_circbuf.c
lib_creat.c
lib_mknod.c
lib_umask.c
lib_utsname.c
+5 -5
View File
@@ -22,11 +22,11 @@
# Add the internal C files to the build
CSRCS += lib_bitmap.c lib_circbuf.c lib_mknod.c lib_umask.c lib_utsname.c
CSRCS += lib_getrandom.c lib_xorshift128.c lib_tea_encrypt.c lib_tea_decrypt.c
CSRCS += lib_cxx_initialize.c lib_impure.c lib_memfd.c lib_mutex.c
CSRCS += lib_fchmodat.c lib_fstatat.c lib_getfullpath.c lib_openat.c
CSRCS += lib_mkdirat.c lib_utimensat.c lib_mallopt.c
CSRCS += lib_bitmap.c lib_circbuf.c lib_creat.c lib_mknod.c lib_umask.c
CSRCS += lib_utsname.c lib_getrandom.c lib_xorshift128.c lib_tea_encrypt.c
CSRCS += lib_tea_decrypt.c lib_cxx_initialize.c lib_impure.c lib_memfd.c
CSRCS += lib_mutex.c lib_fchmodat.c lib_fstatat.c lib_getfullpath.c
CSRCS += lib_openat.c lib_mkdirat.c lib_utimensat.c lib_mallopt.c
CSRCS += lib_idr.c lib_getnprocs.c
ifeq ($(CONFIG_LIBC_TEMPBUFFER),y)
+52
View File
@@ -0,0 +1,52 @@
/****************************************************************************
* libs/libc/misc/lib_creat.c
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <fcntl.h>
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: creat
*
* Description:
* The creat() function is just a simple wrapper of open() function
*
* Input Parameters:
* path - The path for the file to create on
* mode - the access mode
*
* Returned Value:
* Return a file descriptor of the file that created success,
* return -1 if error occurd on creat new file, and errno is setup
*
****************************************************************************/
int creat(FAR const char *path, mode_t mode)
{
return open(path, O_WRONLY | O_CREAT | O_TRUNC, mode);
}