io.h源码 检查文件是否存在
请问在windows上使用什么API来检查文件是否存在? http://topic.csdn.net/u/20080929/00/48833cf7-125f-4075-881f-614a51fc3e6d.html
搜索这个问题的时候,看到的。
linux下直接open (filename,O_RDONLY) 返回值判断,windows下 没有这个函数?奇怪。貌似有 _open()函数,可以去msdn查去。
查找到windows用 下面的函数就可以。filename是 char * 类型。
if( PathFileExists(filename) ){
return true;
}
return false;
但又看到上面的 床上等你csdn 的讨论,有个io.h _access函数,定义如下。
_Check_return_ _CRTIMP int __cdecl _access(_In_z_ const char * _Filename, _In_ int _AccessMode);
_Check_return_ _CRT_NONSTDC_DEPRECATE(_access) _CRTIMP int __cdecl access(_In_z_ const char * _Filename, _In_ int _AccessMode);
_AccessMode 取值代表的意思,不知道到那里查看。如果有源码也行啊,就是没有。
既然有个 stdio.h 为什么还单独 拿出 io.h呢? 就不能整合到一起么?
而且我做了个测试,居然有莫名其妙的错误,原来是 c:\ 要写成 c:\\
#include <io.h> #include <stdio.h> #include <stdlib.h> #include <string.h>bool isFileExist(const char *filename){if( _access(filename, 0) == 0 ) {// existprintf("Exist %s\n",filename);}else{printf("Not exist %s\n",filename);}return true; }int main(){isFileExist("c:\\boot.ini");isFileExist("c:\\bootmgr");return 0; }
测试结果:
>gcc test.cpp
>a
Not exist c:\boot.ini
Exist c:\bootmgr
之前的错误 显示结果为:
Not exist coot.ini
Not exist cootmgr
程序大小 49.3KB ,不怎么小。
附上C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\io.h 代码 不明白,条件编译 为什么就不给代码格式化 缩进呢???
/*** *io.h - declarations for low-level file handling and I/O functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function declarations for the low-level * file handling and I/O functions. * * [Public] * ****/#pragma once#ifndef _INC_IO #define _INC_IO#include <crtdefs.h>/** Currently, all MS C compilers for Win32 platforms default to 8 byte* alignment.*/ #pragma pack(push,_CRT_PACKING)#ifndef _POSIX_#ifdef __cplusplus extern "C" { #endif#ifndef _FSIZE_T_DEFINED typedef unsigned long _fsize_t; /* Could be 64 bits for Win32 */ #define _FSIZE_T_DEFINED #endif#ifndef _FINDDATA_T_DEFINEDstruct _finddata32_t {unsigned attrib;__time32_t time_create; /* -1 for FAT file systems */__time32_t time_access; /* -1 for FAT file systems */__time32_t time_write;_fsize_t size;char name[260]; };struct _finddata32i64_t {unsigned attrib;__time32_t time_create; /* -1 for FAT file systems */__time32_t time_access; /* -1 for FAT file systems */__time32_t time_write;__int64 size;char name[260]; };struct _finddata64i32_t {unsigned attrib;__time64_t time_create; /* -1 for FAT file systems */__time64_t time_access; /* -1 for FAT file systems */__time64_t time_write;_fsize_t size;char name[260]; };struct __finddata64_t {unsigned attrib;__time64_t time_create; /* -1 for FAT file systems */__time64_t time_access; /* -1 for FAT file systems */__time64_t time_write;__int64 size;char name[260]; };#ifdef _USE_32BIT_TIME_T #define _finddata_t _finddata32_t #define _finddatai64_t _finddata32i64_t#define _findfirst _findfirst32 #define _findnext _findnext32 #define _findfirsti64 _findfirst32i64 #define _findnexti64 _findnext32i64#else #define _finddata_t _finddata64i32_t #define _finddatai64_t __finddata64_t#define _findfirst _findfirst64i32 #define _findnext _findnext64i32 #define _findfirsti64 _findfirst64 #define _findnexti64 _findnext64#endif#define _FINDDATA_T_DEFINED #endif#ifndef _WFINDDATA_T_DEFINEDstruct _wfinddata32_t {unsigned attrib;__time32_t time_create; /* -1 for FAT file systems */__time32_t time_access; /* -1 for FAT file systems */__time32_t time_write;_fsize_t size;wchar_t name[260]; };struct _wfinddata32i64_t {unsigned attrib;__time32_t time_create; /* -1 for FAT file systems */__time32_t time_access; /* -1 for FAT file systems */__time32_t time_write;__int64 size;wchar_t name[260]; };struct _wfinddata64i32_t {unsigned attrib;__time64_t time_create; /* -1 for FAT file systems */__time64_t time_access; /* -1 for FAT file systems */__time64_t time_write;_fsize_t size;wchar_t name[260]; };struct _wfinddata64_t {unsigned attrib;__time64_t time_create; /* -1 for FAT file systems */__time64_t time_access; /* -1 for FAT file systems */__time64_t time_write;__int64 size;wchar_t name[260]; };#ifdef _USE_32BIT_TIME_T #define _wfinddata_t _wfinddata32_t #define _wfinddatai64_t _wfinddata32i64_t#define _wfindfirst _wfindfirst32 #define _wfindnext _wfindnext32 #define _wfindfirsti64 _wfindfirst32i64 #define _wfindnexti64 _wfindnext32i64#else #define _wfinddata_t _wfinddata64i32_t #define _wfinddatai64_t _wfinddata64_t#define _wfindfirst _wfindfirst64i32 #define _wfindnext _wfindnext64i32 #define _wfindfirsti64 _wfindfirst64 #define _wfindnexti64 _wfindnext64#endif#define _WFINDDATA_T_DEFINED #endif/* File attribute constants for _findfirst() */#define _A_NORMAL 0x00 /* Normal file - No read/write restrictions */ #define _A_RDONLY 0x01 /* Read only file */ #define _A_HIDDEN 0x02 /* Hidden file */ #define _A_SYSTEM 0x04 /* System file */ #define _A_SUBDIR 0x10 /* Subdirectory */ #define _A_ARCH 0x20 /* Archive file *//* function prototypes */#ifndef _SIZE_T_DEFINED #ifdef _WIN64 typedef unsigned __int64 size_t; #else typedef _W64 unsigned int size_t; #endif #define _SIZE_T_DEFINED #endif_Check_return_ _CRTIMP int __cdecl _access(_In_z_ const char * _Filename, _In_ int _AccessMode); _Check_return_wat_ _CRTIMP errno_t __cdecl _access_s(_In_z_ const char * _Filename, _In_ int _AccessMode); _Check_return_ _CRTIMP int __cdecl _chmod(_In_z_ const char * _Filename, _In_ int _Mode); /* note that the newly added _chsize_s takes a 64 bit value */ _Check_return_ _CRTIMP int __cdecl _chsize(_In_ int _FileHandle, _In_ long _Size); _Check_return_wat_ _CRTIMP errno_t __cdecl _chsize_s(_In_ int _FileHandle,_In_ __int64 _Size); _Check_return_opt_ _CRTIMP int __cdecl _close(_In_ int _FileHandle); _Check_return_opt_ _CRTIMP int __cdecl _commit(_In_ int _FileHandle); _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _creat(_In_z_ const char * _Filename, _In_ int _PermissionMode); _Check_return_ _CRTIMP int __cdecl _dup(_In_ int _FileHandle); _Check_return_ _CRTIMP int __cdecl _dup2(_In_ int _FileHandleSrc, _In_ int _FileHandleDst); _Check_return_ _CRTIMP int __cdecl _eof(_In_ int _FileHandle); _Check_return_ _CRTIMP long __cdecl _filelength(_In_ int _FileHandle); _Check_return_ _CRTIMP intptr_t __cdecl _findfirst32(_In_z_ const char * _Filename, _Out_ struct _finddata32_t * _FindData); _Check_return_ _CRTIMP int __cdecl _findnext32(_In_ intptr_t _FindHandle, _Out_ struct _finddata32_t * _FindData); _Check_return_opt_ _CRTIMP int __cdecl _findclose(_In_ intptr_t _FindHandle); _Check_return_ _CRTIMP int __cdecl _isatty(_In_ int _FileHandle); _CRTIMP int __cdecl _locking(_In_ int _FileHandle, _In_ int _LockMode, _In_ long _NumOfBytes); _Check_return_opt_ _CRTIMP long __cdecl _lseek(_In_ int _FileHandle, _In_ long _Offset, _In_ int _Origin); _Check_return_wat_ _CRTIMP errno_t __cdecl _mktemp_s(_Inout_z_cap_(_Size) char * _TemplateName, _In_ size_t _Size); __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _mktemp_s, _Deref_prepost_z_ char, _TemplateName) _Check_return_ __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(char *, __RETURN_POLICY_DST, _CRTIMP, _mktemp, _Inout_z_, char, _TemplateName) _Check_return_ _CRTIMP int __cdecl _pipe(_Inout_cap_c_(2) int * _PtHandles, _In_ unsigned int _PipeSize, _In_ int _TextMode); _Check_return_ _CRTIMP int __cdecl _read(_In_ int _FileHandle, _Out_bytecap_(_MaxCharCount) void * _DstBuf, _In_ unsigned int _MaxCharCount);#ifndef _CRT_DIRECTORY_DEFINED #define _CRT_DIRECTORY_DEFINED _CRTIMP int __cdecl remove(_In_z_ const char * _Filename); _Check_return_ _CRTIMP int __cdecl rename(_In_z_ const char * _OldFilename, _In_z_ const char * _NewFilename); _CRTIMP int __cdecl _unlink(_In_z_ const char * _Filename); #if !__STDC__ _CRT_NONSTDC_DEPRECATE(_unlink) _CRTIMP int __cdecl unlink(_In_z_ const char * _Filename); #endif #endif_Check_return_ _CRTIMP int __cdecl _setmode(_In_ int _FileHandle, _In_ int _Mode); _Check_return_ _CRTIMP long __cdecl _tell(_In_ int _FileHandle); _CRT_INSECURE_DEPRECATE(_umask_s) _CRTIMP int __cdecl _umask(_In_ int _Mode); _Check_return_wat_ _CRTIMP errno_t __cdecl _umask_s(_In_ int _NewMode, _Out_ int * _OldMode); _CRTIMP int __cdecl _write(_In_ int _FileHandle, _In_bytecount_(_MaxCharCount) const void * _Buf, _In_ unsigned int _MaxCharCount);_Check_return_ _CRTIMP __int64 __cdecl _filelengthi64(_In_ int _FileHandle); _Check_return_ _CRTIMP intptr_t __cdecl _findfirst32i64(_In_z_ const char * _Filename, _Out_ struct _finddata32i64_t * _FindData); _Check_return_ _CRTIMP intptr_t __cdecl _findfirst64i32(_In_z_ const char * _Filename, _Out_ struct _finddata64i32_t * _FindData); _Check_return_ _CRTIMP intptr_t __cdecl _findfirst64(_In_z_ const char * _Filename, _Out_ struct __finddata64_t * _FindData); _Check_return_ _CRTIMP int __cdecl _findnext32i64(_In_ intptr_t _FindHandle, _Out_ struct _finddata32i64_t * _FindData); _Check_return_ _CRTIMP int __cdecl _findnext64i32(_In_ intptr_t _FindHandle, _Out_ struct _finddata64i32_t * _FindData); _Check_return_ _CRTIMP int __cdecl _findnext64(_In_ intptr_t _FindHandle, _Out_ struct __finddata64_t * _FindData); _Check_return_opt_ _CRTIMP __int64 __cdecl _lseeki64(_In_ int _FileHandle, _In_ __int64 _Offset, _In_ int _Origin); _Check_return_ _CRTIMP __int64 __cdecl _telli64(_In_ int _FileHandle);_Check_return_wat_ _CRTIMP errno_t __cdecl _sopen_s(_Out_ int * _FileHandle, _In_z_ const char * _Filename,_In_ int _OpenFlag, _In_ int _ShareFlag, _In_ int _PermissionMode);#if !defined(__cplusplus) _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _open(_In_z_ const char * _Filename, _In_ int _OpenFlag, ...); _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _sopen(_In_z_ const char * _Filename, _In_ int _OpenFlag, int _ShareFlag, ...); #else/* these function do not validate pmode; use _sopen_s */ extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _open(_In_z_ const char * _Filename, _In_ int _Openflag, _In_ int _PermissionMode = 0); extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl _sopen(_In_z_ const char * _Filename, _In_ int _Openflag, _In_ int _ShareFlag, _In_ int _PermissionMode = 0);#endif#ifndef _WIO_DEFINED/* wide function prototypes, also declared in wchar.h */_Check_return_ _CRTIMP int __cdecl _waccess(_In_z_ const wchar_t * _Filename, _In_ int _AccessMode); _Check_return_wat_ _CRTIMP errno_t __cdecl _waccess_s(_In_z_ const wchar_t * _Filename, _In_ int _AccessMode); _Check_return_ _CRTIMP int __cdecl _wchmod(_In_z_ const wchar_t * _Filename, _In_ int _Mode); _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wcreat(_In_z_ const wchar_t * _Filename, _In_ int _PermissionMode); _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata32_t * _FindData); _Check_return_ _CRTIMP int __cdecl _wfindnext32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32_t * _FindData); _CRTIMP int __cdecl _wunlink(_In_z_ const wchar_t * _Filename); _Check_return_ _CRTIMP int __cdecl _wrename(_In_z_ const wchar_t * _OldFilename, _In_z_ const wchar_t * _NewFilename); _CRTIMP errno_t __cdecl _wmktemp_s(_Inout_z_cap_(_SizeInWords) wchar_t * _TemplateName, _In_ size_t _SizeInWords); __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wmktemp_s, _Deref_prepost_z_ wchar_t, _TemplateName) __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, _wmktemp, _Inout_z_, wchar_t, _TemplateName)_Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst32i64(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata32i64_t * _FindData); _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst64i32(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata64i32_t * _FindData); _Check_return_ _CRTIMP intptr_t __cdecl _wfindfirst64(_In_z_ const wchar_t * _Filename, _Out_ struct _wfinddata64_t * _FindData); _Check_return_ _CRTIMP int __cdecl _wfindnext32i64(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata32i64_t * _FindData); _Check_return_ _CRTIMP int __cdecl _wfindnext64i32(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata64i32_t * _FindData); _Check_return_ _CRTIMP int __cdecl _wfindnext64(_In_ intptr_t _FindHandle, _Out_ struct _wfinddata64_t * _FindData);_Check_return_wat_ _CRTIMP errno_t __cdecl _wsopen_s(_Out_ int * _FileHandle, _In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, _In_ int _PermissionFlag);#if !defined(__cplusplus) || !defined(_M_IX86)_Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, ...); _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wsopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, int _ShareFlag, ...);#else/* these function do not validate pmode; use _sopen_s */ extern "C++" _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _PermissionMode = 0); extern "C++" _CRT_INSECURE_DEPRECATE(_wsopen_s) _CRTIMP int __cdecl _wsopen(_In_z_ const wchar_t * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, int _PermissionMode = 0);#endif#define _WIO_DEFINED #endifint __cdecl __lock_fhandle(_In_ int _Filehandle); void __cdecl _unlock_fhandle(_In_ int _Filehandle);_CRTIMP intptr_t __cdecl _get_osfhandle(_In_ int _FileHandle); _CRTIMP int __cdecl _open_osfhandle(_In_ intptr_t _OSFileHandle, _In_ int _Flags);#if !__STDC__/* Non-ANSI names for compatibility */#pragma warning(push) #pragma warning(disable: 4141) /* Using deprecated twice */ _Check_return_ _CRT_NONSTDC_DEPRECATE(_access) _CRTIMP int __cdecl access(_In_z_ const char * _Filename, _In_ int _AccessMode); _Check_return_ _CRT_NONSTDC_DEPRECATE(_chmod) _CRTIMP int __cdecl chmod(_In_z_ const char * _Filename, int _AccessMode); _Check_return_ _CRT_NONSTDC_DEPRECATE(_chsize) _CRTIMP int __cdecl chsize(_In_ int _FileHandle, _In_ long _Size); _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_close) _CRTIMP int __cdecl close(_In_ int _FileHandle); _Check_return_ _CRT_NONSTDC_DEPRECATE(_creat) _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl creat(_In_z_ const char * _Filename, _In_ int _PermissionMode); _Check_return_ _CRT_NONSTDC_DEPRECATE(_dup) _CRTIMP int __cdecl dup(_In_ int _FileHandle); _Check_return_ _CRT_NONSTDC_DEPRECATE(_dup2) _CRTIMP int __cdecl dup2(_In_ int _FileHandleSrc, _In_ int _FileHandleDst); _Check_return_ _CRT_NONSTDC_DEPRECATE(_eof) _CRTIMP int __cdecl eof(_In_ int _FileHandle); _Check_return_ _CRT_NONSTDC_DEPRECATE(_filelength) _CRTIMP long __cdecl filelength(_In_ int _FileHandle); _Check_return_ _CRT_NONSTDC_DEPRECATE(_isatty) _CRTIMP int __cdecl isatty(_In_ int _FileHandle); _Check_return_ _CRT_NONSTDC_DEPRECATE(_locking) _CRTIMP int __cdecl locking(_In_ int _FileHandle, _In_ int _LockMode, _In_ long _NumOfBytes); _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_lseek) _CRTIMP long __cdecl lseek(_In_ int _FileHandle, _In_ long _Offset, _In_ int _Origin); _CRT_NONSTDC_DEPRECATE(_mktemp) _CRT_INSECURE_DEPRECATE(_mktemp_s) _CRTIMP char * __cdecl mktemp(_Inout_z_ char * _TemplateName); _Check_return_ _CRT_NONSTDC_DEPRECATE(_open) _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl open(_In_z_ const char * _Filename, _In_ int _OpenFlag, ...); _CRT_NONSTDC_DEPRECATE(_read) _CRTIMP int __cdecl read(int _FileHandle, _Out_bytecap_(_MaxCharCount) void * _DstBuf, _In_ unsigned int _MaxCharCount); _Check_return_ _CRT_NONSTDC_DEPRECATE(_setmode) _CRTIMP int __cdecl setmode(_In_ int _FileHandle, _In_ int _Mode); _CRT_NONSTDC_DEPRECATE(_sopen) _CRT_INSECURE_DEPRECATE(_sopen_s) _CRTIMP int __cdecl sopen(const char * _Filename, _In_ int _OpenFlag, _In_ int _ShareFlag, ...); _Check_return_ _CRT_NONSTDC_DEPRECATE(_tell) _CRTIMP long __cdecl tell(_In_ int _FileHandle); _CRT_NONSTDC_DEPRECATE(_umask) _CRT_INSECURE_DEPRECATE(_umask_s) _CRTIMP int __cdecl umask(_In_ int _Mode); _Check_return_ _CRT_NONSTDC_DEPRECATE(_write) _CRTIMP int __cdecl write(_In_ int _Filehandle, _In_bytecount_(_MaxCharCount) const void * _Buf, _In_ unsigned int _MaxCharCount); #pragma warning(pop)#endif /* __STDC__ */#ifdef __cplusplus } #endif#endif /* _POSIX_ */#pragma pack(pop)#endif /* _INC_IO */
这个头文件 外围的条件编译是非 posix。windows平台 还有 CreateFile啊,GetFileAttributeEx啊,FindFirstFile
BOOL FindFirstFileExists(LPCTSTR lpPath, DWORD dwFilter)
{
WIN32_FIND_DATA fd;
HANDLE hFind = FindFirstFile(lpPath, &fd);
BOOL bFilter = (FALSE == dwFilter) ? TRUE : fd.dwFileAttributes & dwFilter;
BOOL RetValue = ((hFind != INVALID_HANDLE_VALUE) && bFilter) ? TRUE : FALSE;
FindClose(hFind);
return RetValue;
}
// 检查一个路径是否存在(绝对路径、相对路径,文件或文件夹均可)
BOOL FilePathExists(LPCTSTR lpPath)
{
return FindFirstFileExists(lpPath, FALSE);
}
// 检查一个文件夹是否存在(绝对路径、相对路径均可)
BOOL FolderExists(LPCTSTR lpPath)
{
return FindFirstFileExists(lpPath, FILE_ATTRIBUTE_DIRECTORY);
}
HANDLE FindFirstFileEx(
LPCTSTR lpFileName, // file name
FINDEX_INFO_LEVELS fInfoLevelId, // information level
LPVOID lpFindFileData, // information buffer
FINDEX_SEARCH_OPS fSearchOp, // filtering type
LPVOID lpSearchFilter, // search criteria
DWORD dwAdditionalFlags // reserved
);
都是些 windows平台的函数。不是跨平台的。微软 真是 烦人。
转载于:https://www.cnblogs.com/ayanmw/archive/2012/07/26/2609721.html
io.h源码 检查文件是否存在相关推荐
- FatFs 之一 R0.13c版源码目录文件、函数、全配置项详解及移植说明
FatFs 是用于小型嵌入式系统的通用 FAT/exFAT 文件系统模块.FatFs 模块的编写符合 ANSI C(C89),并与磁盘 I/O 层完全分离,因此它独立于硬件平台. 它可以集成到资源 ...
- LwIP 之一 源码目录文件详解及移植说明
lwIP 是 TCP/IP 协议套件的一个小型独立实现.lwIP TCP/IP 实现的重点是减少 RAM 使用同时仍然有一个完整的 TCP. 这使得 lwIP 适合使用在具有数 10 千字节的可 ...
- 机械祭天法力无边:C++primer之书店程序包含Sales_item.h源码
好吧,作为一个老菜鸟,还有第一章几道题实在写不下去了,直接写书店程序,这个书店程序只能满足2 2 2 3 3 这种连续的情况,无法满足2 3 2 3这种情况. 首先上Sales_item.h头文件源 ...
- 基于线上的茶叶购买小程序(论文+程序设计源码+数据库文件)
微信小程序在日常生活中应用越来越广,网上消费.游戏娱乐等成为了一种常见应用方式.为进一步了解和探索微信小程序在点餐系统中的潜在价值和意义,本文通过使用 Javascript 技术.Spring boo ...
- 鸿蒙开发板HI3861 利用蜂鸣器播放音乐 open Harmony1.0.0(附cmsis_os2.h源码)
本文利用鸿蒙开发板HI3861在鸿蒙1.0.0源码下利用蜂鸣器播放音乐. pwm_buz.c #include <stdio.h> #include "ohos_init.h&q ...
- epoll.h 源码记录
epoll.h源码: /* Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of the GNU C ...
- 基于北斗导航定位系统的设计与实现(论文+程序设计源码+数据库文件)
摘 要 改革开放新时代的到来,人们的生活发生了翻天覆地的变化,人们的娱乐方式变得更加丰富多彩,人们的活动圈子在不断的扩大,不仅仅局限于眼前的苟且,更向往着诗与远方,人们的活动圈子的扩大就意味着在特殊时 ...
- 基于java的千千影评网站的设计与实现(论文+程序设计源码+数据库文件)
摘要:信息技术高度发达的今天,新闻业已经在互联网行业中占越发主导地位.而我们的生活也跟新闻息息相关,尤其是在高度发达的精神文化社会,人们对于电影的喜爱也越来越热衷,但想挑到自己喜爱的片子,就需要影评网 ...
- v62.02 鸿蒙内核源码分析(文件概念) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码
司马牛忧曰:"人皆有兄弟,我独亡."子夏曰:"商闻之矣:死生有命,富贵在天.君子敬而无失,与人恭而有礼.四海之内,皆兄弟也.君子何患乎无兄弟也?" <论语 ...
最新文章
- 8 ServletContext
- 哥们,你侵权了,哥有权告你去!
- 记录一下 Linux飞鸽传书 QIpMsg 的下载链接
- 期刊投稿状态_追踪期刊在线系统投稿状态(十七)
- java list 区别_Java中List和ArrayList的区别
- python验证身份证最后一位数字代表什么_身份证尾数带X的人,是有什么特殊身份吗?看完涨知识了...
- C++primer第五版课后答案参考
- 用户画像及项目实例:电商用户画像
- 腾讯开源运维 PaaS 平台
- PowerPoint课件动画制作三例
- Linux学习笔记(四)
- BP客户主数据信用数据批量修改
- 微信小程序仿照微信拖动缩放图片和截取头像
- 研究了一下WMF图片格式,应该是CYMK
- Proximal Policy Optimization Algorithms翻译
- 计算机科学和电子信息学报,太赫兹科学与电子信息学报
- 智能机器人技术综合实训课程说明
- 图解央行房贷新政 首付才是刚需族最大门槛
- 饿了么UI时间选择器
- 无菌室设计的基本要求有哪些
热门文章
- Silverlight Toolkit DataGrid - 单元格内容对齐样式
- 做专才能做强做大——从OA、协同之争说起
- 英雄难过棍子关html游戏开发,《英雄难过棍子关》评测:看我变长再变长!
- 1.1.3 性能指标-速率 带宽 吞吐量
- python—OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用
- 基于FPGA的几种排序算法总结
- JavaWeb系列之:Servlet
- zabbix-2.4.8使用yum一键部署zabbix
- ajax实现异步校验
- Sandcastle帮助文档生成器使用介绍