X_OK (或6): 判断该文件/文件夹是否有执行权限;
4.函数返回值说明
若存在或者具有权限,返回值为0;
不存在或者无权限,返回值为-1,并把错误代码存在errno 中(errno.h中定义)
错误代码:
EACCESS: 参数pathname所指定的文件不符合所要求测试的权限.
EROFS: 欲测试写入权限的文件存在于只读文件系统内.
EFAULT: 参数pathname指针超出可存取内存空间.
EINVAL: 参数mode 不正确.
ENAMETOOLONG:参数pathname太长.
ENOTDIR: 参数pathname为一目录.
ENOMEM: 核心内存不足
ELOOP: 参数pathname 有过多符号连接问题.
EIO I/O: 存取错误.
C++判断文件/文件夹的状态:文件存在与否、读权限、写权限、执行权限使用access函数,可以判断文件/文件夹的状态使用access函数,可以判断文件/文件夹的状态1.头文件#include <io.h>2.函数原型int access(const char *filename, int mode);3.函数参数说明filename:文件夹路径或者文件路径mode:...
TMS320X28xx编译器输出下列代码:
●汇编源代码输出。TMS320X28xx编译器可以产生汇编语言源码文件,方便用户查看由C/C++语言的产生的汇编源 代码。
●COFF目标文件。通过目标文件格式(COFF)允许用户在连接时定义系统的存储器映射Memory Map)。这样能够 把C/C++的代码和数据对象连接到指定的存储器区域,限度地提高代码的效率。COFF文件还支持源文件级调 试。
●ROM数据格式转换。对于独立(Stand alone)的嵌人式应用系统,编译器能够把所有代码和初始化数据写入 ROM中,使C/C++语言的代码能够在系统复位完成后运行。编译器输出的CO
1、在windows中,当文件只有只读属性时,is_writeable()函数才返回false,当返回true时,该文件不一定是可写的。
如果是目录,在目录中新建文件并通过打开文件来判断;
如果是文件,可以通过打开文件(fopen),来测试文件是否可写。
2、在Unix中...
说明:当程序从标准输入或套接字读取内容时,如果当前缓存区里没有内容可供读取,则程序会一直阻塞在那里。这时,我们可以利用select系统调用,事先先探测下文件描述符是否具备了读取功能,如果具备了,则调用相应的读取函数;如果不具备,则执行其他操作,而不是被阻塞在那里。
int fd_is_ready_read(int fd)
struct timeval tv;
fd_set readfds;
int ret;
FD_ZERO(&
19.1.4 使用IsHyperlink属性向界面添加超级链接 596
19.1.5 通过编程用Follow、FollowHyperlink以及HyperlinkPart方法使用超级链接……597
19.2 Access超级链接选项 601
19.3 向HTML文档导入和导出Access对象的简便方法 602
19.3.1 使用“导出”来导出到HTML 602
19.3.2 导入和链接HTML文件 605
19.4 发布为其他Web文件格式 607
19.5 小 结 608
第四部分 添加专业外观和分布应用程序 609
第20章 编程Office命令栏和Office助手 611
20.1 使用命令栏 611
20.1.1 "自定义”对话框的“工具栏”页 612
20.1.2 "自定义”对话框的“命令”页 613
20.1.3 "自定义”对话框的“选项”选项卡 614
20.1.4 通过用户界面创建工具栏 615
20.1.4 添加命令栏到窗体 620
20.2 通过VBA使用命令栏 621
20.2.1 检查命令栏对象模型 622
20.2.2 编程修改命令栏 622
20.3 使用Office助手 629
20.3.1 Office助手对象模型 631
20.3.2 使用Office助手作为窗体的帮助 631
20.4 FileSearch对象 639
20.4.1 使用简单的例子 640
20.4.2 使用FileSearch属性 641
20.4.3 使用PropertyTests集合 642
20.4.4 使用Property对象的复杂例子 644
20.5 小 结 647
第21章 应用程序安全性 648
21.1 保护应用程序安全的目的 648
21.1.1 保护敏感数据 649
21.1.2 保护开发人员的代码 649
21.2 Access 2000的安全性 649
21.2.1 system.mdw的模型和函数 649
21.2.2 共享级安全:数据库密码 650
21.2.3 用户级安全:Access真正的安全系统 651
21.2.4 用户和组 652
21.2.5 权限 652
21.2.6 我有权限吗 654
21.2.7 理解所有者 654
21.2.8 为添加的保护加密数据库 654
21.2.9 System.mdw文件 656
21.3 安全性用户界面 657
21.3.1 使用PID、SID、WID和密码 657
21.3.2 创建新用户 659
21.3.3 创建新工作组 660
21.3.4 删除用户和组 661
21.3.5 向组中添加用户 661
21.3.6 为用户帐号添加密码 662
21.3.7 从用户帐号中删除密码 662
21.3.8 设置对象权限 663
21.3.9 保护VBE中的模块 664
21.3.10 设置数据库权限 665
21.3.11 改变对象的所有者 665
21.3.12 加密数据库 667
21.3.13 创建工作组信息文件 667
21.3.14 手工保护数据库 668
21.3.15 设置哪些权限 670
21.3.16 取消数据库安全保护 671
21.4 Access安全性的便利工具 671
21.4.1 使用安全性向导 672
21.4.2 在Access中打印用户和组 672
21.4.3 读取安全性白皮书 672
21.4.4 使用其他安全性资源 673
21.5 避免Access安全性的常见陷阱 673
21.5.1 设计安全 673
21.5.2 用默认帐号创建对象 673
21.5.3 多用户环境中保护链接表 674
21.5.4 用所有者权限运行 674
21.5.5 同步复制环境的安全性 675
21.5.6 用Microsoft Office Developer发布安全的应用程序 675
21.5.7 创建.mde文件发布安全的应用程序 676
21.6 用代码管理安全性 676
21.6.1 使用DAO进行安全性编程 676
21.6.2 通过代码创建新用户 678
21.6.3 通过代码删除用户 679
21.6.4 通过代码设置数据库密码 680
21.6.5 通过代码创建组 681
21.6.6 通过代码删除组 682
21.6.7 通过代码添加用户到组 683
21.6.8 通过代码创建对象的所有者 685
21.6.9 通过代码为对象设置权限 686
21.6.10 通过代码检查权限 687
21.6.11 通过代码确定登录身份 689
21.6.12 拒绝用户创建数据库的能力 689
21.6.13 拒绝表和查询对象的创建 691
21.6.14 通过代码压缩、加密和解密数据库 692
21.6.15 通过代码禁用特殊键 692
21.7 使用安全的样本数据库:Chap21s.mdb 694
21.8 小 结 694
第五部分 管理数据库 697
第22章 处理多用户环境 699
22.1 多用户术语 699
22.2 Access多用户处理 700
22.2.1 默认记录锁定 701
22.2.2 默认打开模式:共享与独占 701
22.2.3 更新重试的次数 703
22.2.4 ODBC刷新间隔 703
22.2.5 刷新间隔 704
22.2.6 更新重试时间间隔 704
22.3 一两个数据库包容器:知道放置的位置 704
22.3.1 各组件去向概述 704
22.3.2 拆分数据库的优缺点 705
22.3.3 手工拆分数据库 707
22.3.4 使用数据库拆分器向导 707
22.4 内建锁定模式 708
22.4.1 使用记录与页级锁定 709
22.4.2 锁定所有记录 710
22.4.3 锁定编辑记录 710
22.4.4 使用“不锁定”锁定模式 711
22.4.5 在VBA中使用锁定模式 711
22.4.6 使用可选锁定方案 712
22.5 在VBA中使用非绑定窗体 713
22.5.1 为处理非绑定窗体创建例程 714
22.5.2 使用样本窗体的步骤 716
22.5.3 使用支持例程 718
22.5.4 处理DAO版本 720
22.5.5 设置样本应用程序的ADO版本 736
22.6 多用户错误处理编程 747
22.7 用ADO获取登录用户列表 751
22.8 小 结 753
第23章 数据库同步复制 755
23.1 数据库同步复制的概念 756
23.1.1 同步复制设计目标 756
23.1.2 典型的同步复制应用程序 757
23.2 Jet同步复制工具 757
23.2.1 公文包 757
23.2.2 Access菜单 759
22.2.3 Replication Manager 760
23.2.4 JRO编程 761
23.3 数据库转换为副本 761
23.4 同步副本 766
23.4.1 设计母版和副本 767
23.4.2 恢复设计母版 768
23.4.3 同步复制可视化 768
23.4.4 同步复制系统的列、表及其他问题 769
23.4.5 使用副本集 770
23.5 副本集拓扑 771
23.5.1 单连接列表 771
23.5.2 星型和中心拓扑 771
23.6 星型和中心自动同步 772
23.7 分布可同步复制的应用程序 774
23.7.1 使用可同步复制的和非可同步复制的对象 774
23.7.2 部分副本 775
23.8 同步复制后端和前端应用程序 778
23.9 处理同步复制冲突 779
23.9.1 数据冲突 779
23.9.2 使用Access冲突解决器 780
23.9.3 使用另一个冲突解决算法 782
23.9.4 各种同步复制冲突 785
23.10 复制同步器 786
23.10.1 同步阶段 791
23.10.2 直接和间接同步 791
23.10.3 预定和随选同步 791
23.10.4 在Internet上同步副本 792
23.10.5 处理计数字段 792
23.10.6 使用同步复制的只读属性 793
23.10.7 执行同步复制鉴别修正 794
23.10.8 使用最后的同步伙伴 794
23.10.9 对同步复制的数据库使用压缩工具 795
23.10.10 确定是否备份副本 795
23.11 副本集从Access 97升级为Access 2000 795
23.12 保护同步复制的应用程序 796
23.13 同步复制数据库使用MDE文件 796
23.14 创建成功的同步复制应用程序 796
23.15 小 结 797
第24章 应用程序移到客户/服务器 798
24.1 了解客户/服务器 798
24.1.1 客户/服务器术语解释 799
24.1.2 利用ODBC 799
24.1.3 客户/服务器中使用Access的原因 800
24.2 迁移到客户/服务器的考虑因素 801
24.2.1 数据量 801
24.2.2 数据库的使用和用处 803
24.2.3 数据库设计 803
24.2.4 同时使用及用户数量 803
24.2.5 备份与恢复 803
24.2.6 安全性 804
24.2.7 应用程序间的数据共享 804
24.2.8 网络传输 804
24.2.9 记录集合 805
24.2.10 选择合适的系统 805
24.3 制订客户/服务器计划 805
24.3.1 字段和表的名称 806
24.3.2 保留字 806
24.3.3 区分字母大小写 807
24.3.4 服务器上的查询处理 807
24.4 应用程序开发过程的注意事项 808
24.4.1 限定数据 809
24.4.2 使用组合框 809
24.4.3 使用Access特定函数和用户自定义函数 810
24.4.4 创建异构联接及交叉数据库联接 810
24.4.5 处理OLE对象 810
24.4.6 使用本地表获取静态信息 811
24.5 转换现有的应用程序 811
24.5.1 从设计合理的数据库开始 811
24.5.2 使用时间戳字段 812
24.5.3 清理查询 812
24.5.4 重做窗体 813
24.5.5 开发高级应用程序 814
24.5.6 利用当前的Access安全性 817
24.5.7 升迁Access数据库 817
24.5.8 使用升迁工具 821
24.6 分布客户/服务器解决方案 824
24.6.1 编程设置ODBC数据源 825
24.6.2 用服务器脚本重新创建SQL数据库 828
24.6.3 向SQL Server加载现有的数据 829
24.7 Access和SQL Server的注意事项 829
24.8 小 结 830
第25章 用ADPs开发SQL Server项目 831
25.1 项目文件结构 832
25.1.1 介绍OLE DB 832
25.1.2 链接到数据 832
25.1.3 数据链接和Access项目 833
25.1.4 数据链接和VBA代码 834
25.1.5 Microsoft数据引擎 837
25.1.6 SQL Server上的对象 837
25.2 创建过程 839
25.2.1 创建新项目 839
25.2.2 项目属性 842
25.2.3 确保项目安全 843
25.3 创建客户/服务器应用程序 844
25.3.1 使用表 845
25.3.2 对象的命名约定 847
25.3.3 SQL Server的数据类型 848
25.3.4 使用约束 850
25.3.5 使用触发器 856
25.3.6 优化数据访问 858
25.4 使用视图 859
25.5 使用存储过程 862
25.5.1 创建存储过程 863
25.5.2 比较存储过程和Access语法 866
25.6 小 结 868
第六部分 添加最终的交互 869
第26章 使用DAO的启动检查系统例程 871
26.1 执行启动系统检查 872
26.2 使用定制数据库属性 877
26.2.1 通过用户界面创建数据库属性 877
26.2.2 从VBA访问定制数据库属性 878
26.3 通知和记录用户退出应用程序 879
26.3.1 启动时让用户退出 880
26.3.2 在应用程序运行中记录用户退出 881
26.3.3 设置标志文件让用户退出后端 885
26.3.4 启动时测试链接表的链接 888
26.4 通过VBA链接和解除链接表 889
26.4.1 链接和解除链接位于应用程序文件夹中Jet后端的表 890
26.4.2 用OpenFile API调用查找Jet后端 894
26.5 测试和修复损坏的Jet后端数据库 897
26.6 检查并通知用户新版本的情况 904
26.7 小 结 907
第27章 使用ADO的启动检查系统例程 908
27.1 执行启动系统检查 909
27.2 采用ADO设置和检索系统的设置 914
27.3 在启动时测试链接表的连接 915
27.4 通过VBA和ADO链接表 917
27.5 测试和修复损坏的Jet后端数据库 921
27.6 使用ADO复制代码表 925
27.7 小 结 929
第28章 创建维护例程 930
28.1 创建导出对话框导出应用程序的表 930
28.1.1 实用工具的演示 930
28.1.2 查看组成导出实用工具的部件 931
28.1.3 查看创建导出实用工具的代码 935
28.2 根据需要压缩和修复后端 937
28.3 创建通用代码表编辑器 942
28.4 后端复制表到前端以获取更好的性能 944
28.4.1 创建复制表编辑器 945
28.4.2 复制半静态数据的启动例程 954
28.5 小 结 960
第七部分 附录 961
附录A 在Access 2000中调试代码 963
A.1 设置正确的模块选项以发挥最大的调试能力 963
A.2 利用立即窗口 967
A.2.1 从应用程序向立即窗口显示数据 967
A.2.2 在立即窗口中显示数据 968
A.2.3 在立即窗口中给变量和对象赋值 968
A.2.4 从立即窗口运行代码 969
A.3 终止程序运行 970
A.3.1 使用Stop语句 971
A.3.2 使用断点 971
A.3.3 使用Debug.Assert 972
A.4 单步调试 972
A.4.1 按行“逐语句”运行代码 972
A.4.2 用“逐过程”越过代码 973
A.4.3 用“跳出”命令离开例程 973
A.4.4 "运行到光标处”命令略过已检验的代码 973
A.5 查看过程调用顺序 973
A.6 程序运行期间监视表达式 974
A.6.1 本地窗口 975
A.6.2 用“快速监视”对话框快速监视 977
A.6.3 在监视窗口中添加和查看表达式 978
A.6.4 设置断点条件和编辑表达式 979
A.7 用条件编译命令控制代码 981
A.8 小 结 983
附录B ActiveX初步 984
B.1 使用ActiveX控件 984
B.1.1 Access附带的ActiveX控件 985
B.1.2 在窗体上放置ActiveX控件 985
B.1.3 设计期间设置ActiveX控件的属性 987
B.2 用日历控件计算天数 988
B.2.1 日历ActiveX控件的属性 989
B.2.2 用日历控件设计VBA 992
B.3 通过Common Dialog ActiveX控件使用标准界面 994
B.3.1 用Common Dialog 控件查找文件 996
B.3.2 用Common Dialog ActiveX控件改变默认的系统打印机 997
B.4 小 结 998
附录C Access 2000和Jet4的错误 999
附录D Microsoft Access LESZYNSKI命名约定 1076
D.1 命名约定初步 1077
D.2 Access对象类型 1078
D.3 对象名的结构 1079
D.3.1 什么是前缀 1079
D.3.2 什么是标记 1080
D.3.3 什么是基本名称 1080
D.3.4 什么是限定符 1080
D.3.5 什么是后缀 1081
D.4 创建数据库对象基本名称 1081
D.4.1 基本名称规则 1082
D.4.2 基本名称长度限制 1082
D.4.3 复合基本名称 1083
D.4.4 字段基本名称 1083
D.4.5 基本名称元素的顺序 1085
D.5 数据库对象的命名约定 1085
D.5.1 数据库窗口对象的标记 1086
D.5.2 窗体和报表控件对象的标记 1088
D.5.3 数据库对象的前缀 1091
D.5.4 使用菜单宏 1092
D.5.5 数据库对象名样例 1093
D.6 创建VBA对象基本名称 1093
D.6.1 VBA对象基本名称的规则 1094
D.6.2 VBA对象基本名称长度 1094
D.6.3 复合VBA 对象基本名称 1094
D.7 VBA对象的命名约定 1095
D.7.1 变量的标记 1095
D.7.2 变量的前缀 1100
D.7.3 常量命名 1101
D.7.4 过程的标记和前缀 1102
D.7.5 用宏代替VBA 1102
D.7.6 Visual Basic对象名示例 1103
D.8 创建自己的标记 1103
D.9 VBA编码约定 1105
D.9.1 编码注释 1105
D.9.2 处理错误 1105
D.10 标准缩写 1106
D.11 标准术语 1108
D.12 LNC的补充信息 1109
D.12.1 如何得到LNC 1109
D.12.2 发送反馈 1109
D.12.3 作者简介 1109
光盘使用约定 1111
配套光盘内容 1113
1. 在 VSCode 中打开您的项目文件夹。
2. 点击左侧的“文件资源管理器”图标,找到并右键单击您的项目文件夹。
3. 选择“生成代码任务”>“配置任务”>“C/C++: Edit Configurations (JSON)”。
4. 这将打开 c_cpp_properties.json 文件。在其中,您可以编辑 "C/C++ > IntelliSense > C/C++: Default Compiler Path" 来指定默认编译器路径。
希望这可以帮助您配置您的项目文件!