我们在Linux中分发64位和32位版本的静态库.在对客户进行故障排除时,我希望我的诊断shell脚本通过检查.a存档文件来快速消除问题,以确定它是32位还是64位.我遇到的方法不够优雅:
提取.o成员并询问"file"命令(例如,ELF 32位等)
开始包括编码指示的虚拟成员,例如32bit.o/64bit.o并使用"ar -t"进行检查
我试过"字符串xyz.a | grep 32",但这不适用于版本.这不是一个令人心碎的问题,但如果你知道一个优雅的解决方案,我想知道.
我的问题涉及专门的Java,抽象类和受保护数据的使用.我被告知所有数据都应该是私有的,并且仅使用受保护的getter/setter.
现在,我理解我们希望屏蔽数据,使其免受该类临时用户的直接操作,并且公共数据成员通常是一个值得怀疑的做法.我已经看过"Java protected fields vs public getters"(Java protected fields vs public getters),但我仍然怀疑:
protected int i;
Run Code Online (Sandbox Code Playgroud)
在抽象类中比在以下情况更糟糕:
private int i;
protected int geti();
protected void seti(int j);
Run Code Online (Sandbox Code Playgroud)
当抽象类准确地为子类提供父/公共设施时,我只是没有看到缺点,受保护的范围旨在提供对子项的访问,同时保护数据免受临时用户的影响.我在上面提到的问题中指出,大多数答案似乎都解决了为什么数据一般应该是私有而不是公开的问题.我试图将我的问题专门集中在一个抽象的父母中存在的数据,供孩子们使用.我迄今听到的唯一合理的评论是,使用父母受保护的数据(例如,上面的int i)会在子类中留下引用未在子类中声明的变量的代码.参数不太引人注目(参见基类中的Common protected data成员?)您可能希望某天更改访问权限,现在您必须尊重您的界面.这是一个抽象类,旨在100%扩展.
谢谢!特定标题/页面对书籍的引用对于引用"..anyany basic Java programming text ..."更有帮助.
========================================== 10-13-2010
这是关于抽象类的问题,因为它是关于受保护的数据.我觉得令人失望的是,在OOP中数据隐藏是否是一件好事的回答似乎已经转移(答案:是).这里有很多深度涉及抽象类的本质,以及它与常规非final类的区别,以及可能有哪些可能的优点来修复抽象父类中的数据项的名称和类型以供使用儿童班.我认为这里存在创新和更大控制从抽象父类扩展到实现子类的可能性.我担心一般原则,例如数据隐藏的优势,可能成为教条,并抑制创新和新模式和想法的发展.
感谢所有贡献者.
使用PowerShell 2.0:
write-output "abcd" >> mytext.txt
Run Code Online (Sandbox Code Playgroud)
收益:
n n b nul c nul d nul
od -c将nul显示为真正的二进制零\0,或:( a \0 b \0 c \0 d \0和\r \0 \n \0).
我试图生成一些SQL,所以我不认为这样做.有关正在发生什么的想法以及如何使用write-output来获取指定的字符?
我正在使用g ++.我正在使用具有main(int,char**)重命名的代码,因此我可以调用它.我看着我应该在C中使用char**argv还是char*argv []?,char**据说相当于char* [].这在c ++函数调用中似乎不正确.例如:
void f1(char** p){;}
void f2(char* p[]){
f1(p);
//...`
}
Run Code Online (Sandbox Code Playgroud)
失败,编译器抱怨"无法转换char (*)[]为char**..."引用我想说数组转换为调用指针,但似乎不是这样的情况:
void f3(char* [] p);
char caa[16][16];
f3(caa);
Run Code Online (Sandbox Code Playgroud)
也失败了.我假设只要间接水平相同(例如char*** ptr和char[][][] carray),这些类型是可以互换的.
有人可以提供我可以查看的参考,澄清这些问题吗?
谢谢.
我的目标是列出STDOUT在Linux服务器上由java执行的类文件和.jar文件.我可以做一些getopts事情来获取-jar的args,但是其他进程确定了
ps -ef | grep java或ps -eo args | grep java
可能正在执行一个类文件,例如java -classpath/a/b/c myclass A1 A2.我担心的是,我正在寻找一个不完整的解决方案,其中充满了冗长的greps和awk的piplines,以解决应该(我认为)一个简单的查询.鉴于:
有些调用只是'java'而其他调用是java的完全限定路径名,
可以在命令行上设置各种不同(或没有)的java选项来运行进程,
一些进程调用.jar文件,一些调用.class文件,和
班上可能有人参加,
获取运行java可执行文件的简单列表的最佳方法是什么,例如:
abc.jar
mymainclass
xyz.jar
numainclass
我认为这可能是一个不常见的问题,但我似乎无法建立一个搜索字符串来定位此前的任何讨论.优雅的解决方案会很好; 现在我正在考虑将'-jar'条目加入到getops调用中,并考虑所有可能的组合来解析剩余的条目.我正在研究bash 3.x中的解决方案
谢谢!