1570af302Sopenharmony_ci/* 2570af302Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3570af302Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4570af302Sopenharmony_ci * you may not use this file except in compliance with the License. 5570af302Sopenharmony_ci * You may obtain a copy of the License at 6570af302Sopenharmony_ci * 7570af302Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8570af302Sopenharmony_ci * 9570af302Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10570af302Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11570af302Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12570af302Sopenharmony_ci * See the License for the specific language governing permissions and 13570af302Sopenharmony_ci * limitations under the License. 14570af302Sopenharmony_ci */ 15570af302Sopenharmony_ci#include <errno.h> 16570af302Sopenharmony_ci#include <fcntl.h> 17570af302Sopenharmony_ci#include <signal.h> 18570af302Sopenharmony_ci#include <string.h> 19570af302Sopenharmony_ci#include <sys/wait.h> 20570af302Sopenharmony_ci#include <sigchain.h> 21570af302Sopenharmony_ci#include "fortify_test.h" 22570af302Sopenharmony_ci#include "functionalext.h" 23570af302Sopenharmony_ci#include "test.h" 24570af302Sopenharmony_ci 25570af302Sopenharmony_ci#define FILE_MODE_ALL (0777) 26570af302Sopenharmony_ci 27570af302Sopenharmony_ci#ifdef open64 28570af302Sopenharmony_ci#undef open64 29570af302Sopenharmony_ci#endif 30570af302Sopenharmony_ci 31570af302Sopenharmony_ci#ifdef openat64 32570af302Sopenharmony_ci#undef openat64 33570af302Sopenharmony_ci#endif 34570af302Sopenharmony_ci 35570af302Sopenharmony_ci/** 36570af302Sopenharmony_ci * @tc.name : open_0010 37570af302Sopenharmony_ci * @tc.desc : test open normal condition 38570af302Sopenharmony_ci * @tc.level : Level 0 39570af302Sopenharmony_ci */ 40570af302Sopenharmony_cistatic void open_0010(void) 41570af302Sopenharmony_ci{ 42570af302Sopenharmony_ci int fd = open("/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL); 43570af302Sopenharmony_ci TEST(fd != -1); 44570af302Sopenharmony_ci close(fd); 45570af302Sopenharmony_ci 46570af302Sopenharmony_ci return; 47570af302Sopenharmony_ci} 48570af302Sopenharmony_ci 49570af302Sopenharmony_ci/** 50570af302Sopenharmony_ci * @tc.name : open_0020 51570af302Sopenharmony_ci * @tc.desc : test open O_CREAT without mode 52570af302Sopenharmony_ci * @tc.level : Level 2 53570af302Sopenharmony_ci */ 54570af302Sopenharmony_cistatic void open_0020(void) 55570af302Sopenharmony_ci{ 56570af302Sopenharmony_ci struct sigaction sigabrt = { 57570af302Sopenharmony_ci .sa_handler = SignalHandler, 58570af302Sopenharmony_ci }; 59570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 60570af302Sopenharmony_ci 61570af302Sopenharmony_ci int flags = O_CREAT; 62570af302Sopenharmony_ci int status; 63570af302Sopenharmony_ci int pid = fork(); 64570af302Sopenharmony_ci switch (pid) { 65570af302Sopenharmony_ci case -1: 66570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 67570af302Sopenharmony_ci break; 68570af302Sopenharmony_ci case 0: 69570af302Sopenharmony_ci open("/proc/version", flags); 70570af302Sopenharmony_ci exit(0); 71570af302Sopenharmony_ci default: 72570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 73570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 74570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 75570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 76570af302Sopenharmony_ci kill(pid, SIGCONT); 77570af302Sopenharmony_ci break; 78570af302Sopenharmony_ci } 79570af302Sopenharmony_ci 80570af302Sopenharmony_ci return; 81570af302Sopenharmony_ci} 82570af302Sopenharmony_ci 83570af302Sopenharmony_ci/** 84570af302Sopenharmony_ci * @tc.name : open_0030 85570af302Sopenharmony_ci * @tc.desc : test open O_TMPFILE without mode 86570af302Sopenharmony_ci * @tc.level : Level 2 87570af302Sopenharmony_ci */ 88570af302Sopenharmony_cistatic void open_0030(void) 89570af302Sopenharmony_ci{ 90570af302Sopenharmony_ci struct sigaction sigabrt = { 91570af302Sopenharmony_ci .sa_handler = SignalHandler, 92570af302Sopenharmony_ci }; 93570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 94570af302Sopenharmony_ci 95570af302Sopenharmony_ci int flags = O_TMPFILE; 96570af302Sopenharmony_ci int status; 97570af302Sopenharmony_ci int pid = fork(); 98570af302Sopenharmony_ci switch (pid) { 99570af302Sopenharmony_ci case -1: 100570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 101570af302Sopenharmony_ci break; 102570af302Sopenharmony_ci case 0: 103570af302Sopenharmony_ci open("/proc/version", flags); 104570af302Sopenharmony_ci exit(0); 105570af302Sopenharmony_ci default: 106570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 107570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 108570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 109570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 110570af302Sopenharmony_ci kill(pid, SIGCONT); 111570af302Sopenharmony_ci break; 112570af302Sopenharmony_ci } 113570af302Sopenharmony_ci 114570af302Sopenharmony_ci return; 115570af302Sopenharmony_ci} 116570af302Sopenharmony_ci 117570af302Sopenharmony_ci/** 118570af302Sopenharmony_ci * @tc.name : open_0040 119570af302Sopenharmony_ci * @tc.desc : test open only O_RDWR 120570af302Sopenharmony_ci * @tc.level : Level 1 121570af302Sopenharmony_ci */ 122570af302Sopenharmony_cistatic void open_0040(void) 123570af302Sopenharmony_ci{ 124570af302Sopenharmony_ci int fd = open("/proc/version", O_RDWR); 125570af302Sopenharmony_ci EXPECT_NE(open_0040, fd, -1); 126570af302Sopenharmony_ci close(fd); 127570af302Sopenharmony_ci 128570af302Sopenharmony_ci return; 129570af302Sopenharmony_ci} 130570af302Sopenharmony_ci 131570af302Sopenharmony_ci/** 132570af302Sopenharmony_ci * @tc.name : openat_0010 133570af302Sopenharmony_ci * @tc.desc : test openat normal condition 134570af302Sopenharmony_ci * @tc.level : Level 0 135570af302Sopenharmony_ci */ 136570af302Sopenharmony_cistatic void openat_0010(void) 137570af302Sopenharmony_ci{ 138570af302Sopenharmony_ci int fd = openat(AT_FDCWD, "/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL); 139570af302Sopenharmony_ci TEST(fd != -1); 140570af302Sopenharmony_ci close(fd); 141570af302Sopenharmony_ci 142570af302Sopenharmony_ci return; 143570af302Sopenharmony_ci} 144570af302Sopenharmony_ci 145570af302Sopenharmony_ci/** 146570af302Sopenharmony_ci * @tc.name : openat_0020 147570af302Sopenharmony_ci * @tc.desc : test openat O_CREAT without mode 148570af302Sopenharmony_ci * @tc.level : Level 2 149570af302Sopenharmony_ci */ 150570af302Sopenharmony_cistatic void openat_0020(void) 151570af302Sopenharmony_ci{ 152570af302Sopenharmony_ci struct sigaction sigabrt = { 153570af302Sopenharmony_ci .sa_handler = SignalHandler, 154570af302Sopenharmony_ci }; 155570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 156570af302Sopenharmony_ci 157570af302Sopenharmony_ci int flags = O_CREAT; 158570af302Sopenharmony_ci int status; 159570af302Sopenharmony_ci int pid = fork(); 160570af302Sopenharmony_ci switch (pid) { 161570af302Sopenharmony_ci case -1: 162570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 163570af302Sopenharmony_ci break; 164570af302Sopenharmony_ci case 0: 165570af302Sopenharmony_ci openat(AT_FDCWD, "/proc/version", flags); 166570af302Sopenharmony_ci exit(0); 167570af302Sopenharmony_ci default: 168570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 169570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 170570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 171570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 172570af302Sopenharmony_ci kill(pid, SIGCONT); 173570af302Sopenharmony_ci break; 174570af302Sopenharmony_ci } 175570af302Sopenharmony_ci 176570af302Sopenharmony_ci return; 177570af302Sopenharmony_ci} 178570af302Sopenharmony_ci 179570af302Sopenharmony_ci/** 180570af302Sopenharmony_ci * @tc.name : openat_0030 181570af302Sopenharmony_ci * @tc.desc : test openat O_TMPFILE without mode 182570af302Sopenharmony_ci * @tc.level : Level 2 183570af302Sopenharmony_ci */ 184570af302Sopenharmony_cistatic void openat_0030(void) 185570af302Sopenharmony_ci{ 186570af302Sopenharmony_ci struct sigaction sigabrt = { 187570af302Sopenharmony_ci .sa_handler = SignalHandler, 188570af302Sopenharmony_ci }; 189570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 190570af302Sopenharmony_ci 191570af302Sopenharmony_ci int flags = O_TMPFILE; 192570af302Sopenharmony_ci int status; 193570af302Sopenharmony_ci int pid = fork(); 194570af302Sopenharmony_ci switch (pid) { 195570af302Sopenharmony_ci case -1: 196570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 197570af302Sopenharmony_ci break; 198570af302Sopenharmony_ci case 0: 199570af302Sopenharmony_ci openat(AT_FDCWD, "/proc/version", flags); 200570af302Sopenharmony_ci exit(0); 201570af302Sopenharmony_ci default: 202570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 203570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 204570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 205570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 206570af302Sopenharmony_ci kill(pid, SIGCONT); 207570af302Sopenharmony_ci break; 208570af302Sopenharmony_ci } 209570af302Sopenharmony_ci 210570af302Sopenharmony_ci return; 211570af302Sopenharmony_ci} 212570af302Sopenharmony_ci 213570af302Sopenharmony_ci/** 214570af302Sopenharmony_ci * @tc.name : openat_0040 215570af302Sopenharmony_ci * @tc.desc : test openat only O_RDWR 216570af302Sopenharmony_ci * @tc.level : Level 1 217570af302Sopenharmony_ci */ 218570af302Sopenharmony_cistatic void openat_0040(void) 219570af302Sopenharmony_ci{ 220570af302Sopenharmony_ci int fd = openat(AT_FDCWD, "/proc/version", O_RDWR); 221570af302Sopenharmony_ci EXPECT_NE(openat_0040, fd, -1); 222570af302Sopenharmony_ci close(fd); 223570af302Sopenharmony_ci 224570af302Sopenharmony_ci return; 225570af302Sopenharmony_ci} 226570af302Sopenharmony_ci 227570af302Sopenharmony_ci#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) 228570af302Sopenharmony_ci/** 229570af302Sopenharmony_ci * @tc.name : open64_0010 230570af302Sopenharmony_ci * @tc.desc : test open64 normal condition 231570af302Sopenharmony_ci * @tc.level : Level 0 232570af302Sopenharmony_ci */ 233570af302Sopenharmony_cistatic void open64_0010(void) 234570af302Sopenharmony_ci{ 235570af302Sopenharmony_ci int fd = open64("/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL); 236570af302Sopenharmony_ci TEST(fd != -1); 237570af302Sopenharmony_ci close(fd); 238570af302Sopenharmony_ci 239570af302Sopenharmony_ci return; 240570af302Sopenharmony_ci} 241570af302Sopenharmony_ci 242570af302Sopenharmony_ci/** 243570af302Sopenharmony_ci * @tc.name : open64_0020 244570af302Sopenharmony_ci * @tc.desc : test open64 O_CREAT without mode 245570af302Sopenharmony_ci * @tc.level : Level 2 246570af302Sopenharmony_ci */ 247570af302Sopenharmony_cistatic void open64_0020(void) 248570af302Sopenharmony_ci{ 249570af302Sopenharmony_ci struct sigaction sigabrt = { 250570af302Sopenharmony_ci .sa_handler = SignalHandler, 251570af302Sopenharmony_ci }; 252570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 253570af302Sopenharmony_ci 254570af302Sopenharmony_ci int flags = O_CREAT; 255570af302Sopenharmony_ci int status; 256570af302Sopenharmony_ci int pid = fork(); 257570af302Sopenharmony_ci switch (pid) { 258570af302Sopenharmony_ci case -1: 259570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 260570af302Sopenharmony_ci break; 261570af302Sopenharmony_ci case 0: 262570af302Sopenharmony_ci open64("/proc/version", flags); 263570af302Sopenharmony_ci exit(0); 264570af302Sopenharmony_ci default: 265570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 266570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 267570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 268570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 269570af302Sopenharmony_ci kill(pid, SIGCONT); 270570af302Sopenharmony_ci break; 271570af302Sopenharmony_ci } 272570af302Sopenharmony_ci 273570af302Sopenharmony_ci return; 274570af302Sopenharmony_ci} 275570af302Sopenharmony_ci 276570af302Sopenharmony_ci/** 277570af302Sopenharmony_ci * @tc.name : open64_0030 278570af302Sopenharmony_ci * @tc.desc : test open64 O_TMPFILE without mode 279570af302Sopenharmony_ci * @tc.level : Level 2 280570af302Sopenharmony_ci */ 281570af302Sopenharmony_cistatic void open64_0030(void) 282570af302Sopenharmony_ci{ 283570af302Sopenharmony_ci struct sigaction sigabrt = { 284570af302Sopenharmony_ci .sa_handler = SignalHandler, 285570af302Sopenharmony_ci }; 286570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 287570af302Sopenharmony_ci 288570af302Sopenharmony_ci int flags = O_TMPFILE; 289570af302Sopenharmony_ci int status; 290570af302Sopenharmony_ci int pid = fork(); 291570af302Sopenharmony_ci switch (pid) { 292570af302Sopenharmony_ci case -1: 293570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 294570af302Sopenharmony_ci break; 295570af302Sopenharmony_ci case 0: 296570af302Sopenharmony_ci open64("/proc/version", flags); 297570af302Sopenharmony_ci exit(0); 298570af302Sopenharmony_ci default: 299570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 300570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 301570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 302570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 303570af302Sopenharmony_ci kill(pid, SIGCONT); 304570af302Sopenharmony_ci break; 305570af302Sopenharmony_ci } 306570af302Sopenharmony_ci 307570af302Sopenharmony_ci return; 308570af302Sopenharmony_ci} 309570af302Sopenharmony_ci 310570af302Sopenharmony_ci/** 311570af302Sopenharmony_ci * @tc.name : open64_0040 312570af302Sopenharmony_ci * @tc.desc : test open64 only O_RDWR 313570af302Sopenharmony_ci * @tc.level : Level 1 314570af302Sopenharmony_ci */ 315570af302Sopenharmony_cistatic void open64_0040(void) 316570af302Sopenharmony_ci{ 317570af302Sopenharmony_ci int fd = open64("/proc/version", O_RDWR); 318570af302Sopenharmony_ci EXPECT_NE(open64_0040, fd, -1); 319570af302Sopenharmony_ci close(fd); 320570af302Sopenharmony_ci 321570af302Sopenharmony_ci return; 322570af302Sopenharmony_ci} 323570af302Sopenharmony_ci 324570af302Sopenharmony_ci/** 325570af302Sopenharmony_ci * @tc.name : openat64_0010 326570af302Sopenharmony_ci * @tc.desc : test openat64 normal condition 327570af302Sopenharmony_ci * @tc.level : Level 0 328570af302Sopenharmony_ci */ 329570af302Sopenharmony_cistatic void openat64_0010(void) 330570af302Sopenharmony_ci{ 331570af302Sopenharmony_ci int fd = openat64(AT_FDCWD, "/proc/version", O_RDWR | O_CREAT, FILE_MODE_ALL); 332570af302Sopenharmony_ci TEST(fd != -1); 333570af302Sopenharmony_ci close(fd); 334570af302Sopenharmony_ci 335570af302Sopenharmony_ci return; 336570af302Sopenharmony_ci} 337570af302Sopenharmony_ci 338570af302Sopenharmony_ci/** 339570af302Sopenharmony_ci * @tc.name : openat64_0020 340570af302Sopenharmony_ci * @tc.desc : test openat64 O_CREAT without mode 341570af302Sopenharmony_ci * @tc.level : Level 2 342570af302Sopenharmony_ci */ 343570af302Sopenharmony_cistatic void openat64_0020(void) 344570af302Sopenharmony_ci{ 345570af302Sopenharmony_ci struct sigaction sigabrt = { 346570af302Sopenharmony_ci .sa_handler = SignalHandler, 347570af302Sopenharmony_ci }; 348570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 349570af302Sopenharmony_ci 350570af302Sopenharmony_ci int flags = O_CREAT; 351570af302Sopenharmony_ci int status; 352570af302Sopenharmony_ci int pid = fork(); 353570af302Sopenharmony_ci switch (pid) { 354570af302Sopenharmony_ci case -1: 355570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 356570af302Sopenharmony_ci break; 357570af302Sopenharmony_ci case 0: 358570af302Sopenharmony_ci openat64(AT_FDCWD, "/proc/version", flags); 359570af302Sopenharmony_ci exit(0); 360570af302Sopenharmony_ci default: 361570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 362570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 363570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 364570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 365570af302Sopenharmony_ci kill(pid, SIGCONT); 366570af302Sopenharmony_ci break; 367570af302Sopenharmony_ci } 368570af302Sopenharmony_ci 369570af302Sopenharmony_ci return; 370570af302Sopenharmony_ci} 371570af302Sopenharmony_ci 372570af302Sopenharmony_ci/** 373570af302Sopenharmony_ci * @tc.name : openat64_0030 374570af302Sopenharmony_ci * @tc.desc : test openat64 O_TMPFILE without mode 375570af302Sopenharmony_ci * @tc.level : Level 2 376570af302Sopenharmony_ci */ 377570af302Sopenharmony_cistatic void openat64_0030(void) 378570af302Sopenharmony_ci{ 379570af302Sopenharmony_ci struct sigaction sigabrt = { 380570af302Sopenharmony_ci .sa_handler = SignalHandler, 381570af302Sopenharmony_ci }; 382570af302Sopenharmony_ci sigaction(SIGABRT, &sigabrt, NULL); 383570af302Sopenharmony_ci 384570af302Sopenharmony_ci int flags = O_TMPFILE; 385570af302Sopenharmony_ci int status; 386570af302Sopenharmony_ci int pid = fork(); 387570af302Sopenharmony_ci switch (pid) { 388570af302Sopenharmony_ci case -1: 389570af302Sopenharmony_ci t_error("fork failed: %s\n", strerror(errno)); 390570af302Sopenharmony_ci break; 391570af302Sopenharmony_ci case 0: 392570af302Sopenharmony_ci openat64(AT_FDCWD, "/proc/version", flags); 393570af302Sopenharmony_ci exit(0); 394570af302Sopenharmony_ci default: 395570af302Sopenharmony_ci waitpid(pid, &status, WUNTRACED); 396570af302Sopenharmony_ci TEST(WIFEXITED(status) == 0); 397570af302Sopenharmony_ci TEST(WIFSTOPPED(status) == 1); 398570af302Sopenharmony_ci TEST(WSTOPSIG(status) == SIGSTOP); 399570af302Sopenharmony_ci kill(pid, SIGCONT); 400570af302Sopenharmony_ci break; 401570af302Sopenharmony_ci } 402570af302Sopenharmony_ci 403570af302Sopenharmony_ci return; 404570af302Sopenharmony_ci} 405570af302Sopenharmony_ci 406570af302Sopenharmony_ci/** 407570af302Sopenharmony_ci * @tc.name : openat64_0040 408570af302Sopenharmony_ci * @tc.desc : test openat64 only O_RDWR 409570af302Sopenharmony_ci * @tc.level : Level 1 410570af302Sopenharmony_ci */ 411570af302Sopenharmony_cistatic void openat64_0040(void) 412570af302Sopenharmony_ci{ 413570af302Sopenharmony_ci int fd = openat64(AT_FDCWD, "/proc/version", O_RDWR); 414570af302Sopenharmony_ci EXPECT_NE(openat64_0040, fd, -1); 415570af302Sopenharmony_ci close(fd); 416570af302Sopenharmony_ci 417570af302Sopenharmony_ci return; 418570af302Sopenharmony_ci} 419570af302Sopenharmony_ci#endif 420570af302Sopenharmony_ci 421570af302Sopenharmony_ciint main(int argc, char *argv[]) { 422570af302Sopenharmony_ci remove_all_special_handler(SIGABRT); 423570af302Sopenharmony_ci open_0010(); 424570af302Sopenharmony_ci open_0020(); 425570af302Sopenharmony_ci open_0030(); 426570af302Sopenharmony_ci open_0040(); 427570af302Sopenharmony_ci openat_0010(); 428570af302Sopenharmony_ci openat_0020(); 429570af302Sopenharmony_ci openat_0030(); 430570af302Sopenharmony_ci openat_0040(); 431570af302Sopenharmony_ci#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) 432570af302Sopenharmony_ci open64_0010(); 433570af302Sopenharmony_ci open64_0020(); 434570af302Sopenharmony_ci open64_0030(); 435570af302Sopenharmony_ci open64_0040(); 436570af302Sopenharmony_ci openat64_0010(); 437570af302Sopenharmony_ci openat64_0020(); 438570af302Sopenharmony_ci openat64_0030(); 439570af302Sopenharmony_ci openat64_0040(); 440570af302Sopenharmony_ci#endif 441570af302Sopenharmony_ci return t_status; 442570af302Sopenharmony_ci}