我是linux的新手,在使用动态库进行编译时,我收到了segmentationfault错误.
我有两个文件
ctest1.c
void ctest1(int *i)
{
*i =10;
}
Run Code Online (Sandbox Code Playgroud)
ctest2.c
void ctest2(int *i)
{
*i =20;
}
Run Code Online (Sandbox Code Playgroud)
我已使用以下命令将这两个文件编译到名为libtest.so的共享库中
gcc -shared -W1,-soname,libtest.so.1 -o libtest.so.1.0.1 ctest1.o ctest2.o -lc
Run Code Online (Sandbox Code Playgroud)
我已经编写了另一个程序prog.c,它使用了这个库导出的函数
prog.c中
#include <stdio.h>
void (*ctest1)(int*);
void (ctest2)(int*);
int main()
{
int a;
ctest1(&a);
printf("%d",a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令构建可执行文件时
gcc -Wall prog.c -L.-o prog
但是当我运行生成的可执行文件时,我得到了SegmentationFault错误.
当我用ldd检查prog的标题时,它显示出来
linux-vdso.so.1 =>(0x00007f99dff000)libc.so.6 => /lib64/libc.so.6(0x0007feeaa8c1000)/lib64/ld-linux-x86-64.so.2(0x00007feeaac1c000)
有人可以说出问题所在
在AsyncTask的文档中,它提供了以下与线程相关的规则:
- 该任务只能执行一次(如果尝试第二次执行,则会抛出异常.)
所有这些意味着你每次想要使用它时都必须创建一个新的类实例,对吧?换句话说,必须这样做:
new DownloadFilesTask().execute(url1, url2, url3);
new DownloadFilesTask().execute(url4, url5, url6);
Run Code Online (Sandbox Code Playgroud)
或者相反,您不能执行以下操作:
DownloadFilesTask dfTask = new DownloadFilesTask();
dfTask.execute(url1, url2, url3);
dfTask.execute(url4, url5, url6);
Run Code Online (Sandbox Code Playgroud)
有人可以验证这是一个准确的解释吗?
我知道自己刚刚给自己解答了这个问题,因为我正在输入这个......但是对我来说并不是很明显,所以我认为尽管如此,这仍然很有用.
过去几天我一直在引用Sun的文档中的这一部分,现在我才停下来思考它的内容,我无法理解它.请记住,英语不是我的第一语言.
变量:除变量外,所有实例,类和类常量都是小写的第一个字母.
这有什么意义?这不是说这个类名是小写的首字母大小写的吗?就像我应该说出来的那样class myClass?类常量也是大小写的首字母大小写的混合大小写?喜欢而不是Integer.MAX_VALUE,它应该被命名integer.maxValue?
它是否真的在说变量本身应如何命名?
我没有正确解析这个或者这实际上是一个明显的错误?
我成功地制作了一个AjaxFallbackDefaultDataTable,但我想制作单元格链接的内容.如何使用Apache Wicket执行此操作?
UISearchDisplayController非常方便,实现搜索非常简单.
但是,当我在我的应用程序中,我希望显示搜索结果为空搜索字符串但选择范围按钮时,我遇到了问题.
似乎必须输入一些搜索字符串才能使搜索结果表初始化和显示.
有没有办法在用户选择范围但未输入搜索词后立即显示搜索结果?
谢谢比尔
有关于如何使用灰色流的教程吗?
我想创建一个在查找特定字节集时从文件读取的类.我最初的想法是使用灰色流,但找不到任何起始信息.
我正在尝试使用PostgreSQL 8.4和JDBC4驱动程序的SQL数组类型.
我的专栏定义如下:
nicknames CHARACTER VARYING(255)[] NOT NULL
Run Code Online (Sandbox Code Playgroud)
而我正试图这样更新它:
row.updateArray("nicknames",
connection.createArrayOf("CHARACTER VARYING", p.getNicknames().toArray()));
Run Code Online (Sandbox Code Playgroud)
(p.getNicknames()返回List<String>)
但我看到了:
org.postgresql.util.PSQLException:无法找到提供名称CHARACTER VARYING的服务器数组类型.at org.postgresql.jdbc4.AbstractJdbc4Connection.createArrayOf(AbstractJdbc4Connection.java:67)at org.postgresql.jdbc4.Jdbc4Connection.createArrayOf(Jdbc4Connection.java:21)
不幸的是,数组类型似乎没有很好的文档记录 - 我没有找到确切的提到如何在PostgreSQL任何地方这样做:(
有任何想法吗?
我一直想弄清楚这个爆破正则表达怎么样两个小时!现在是午夜我想弄清楚,然后去睡觉!
String str = new String("filename\\");
if(str.matches(".*[?/<>|*:\"{\\}].*")) {
System.out.println("match");
}else {
System.out.println("no match");
}
Run Code Online (Sandbox Code Playgroud)
".*[?/<>|*:\"{\\}].*"是我的正则表达式.除了反斜杠之外,它能正确捕获所有内容!我需要知道如何正确地抓住反斜杠请帮助!
仅供参考,我想抓到的非法角色是?\/<> |*:"我的反斜杠工作异常了
我想在我的rails应用程序中运行wordpress的实例。我目前在public / wordpress中拥有wordpress文件,但是我需要配置.htaccess文件以允许两种类型的请求。我怎么做?目前,.htaccess是:
Apache常规选项
AddHandler fcgid-script .fcgi
RewriteRule上的
RewriteEngine
^ $ index.html [QSA]
RewriteRule ^([^。] +)/!$ $ 1.html [QSA]
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule ^(。 *)$ dispatch.fcgi [QSA,L]
ErrorDocument 500“应用程序错误应用程序无法正确启动”
我有一个简单的数据存储在服务器上,作为一个普通的字符串.这有点荒谬,但它看起来像这样:
name|date|grade|description|name|date|grade|description|repeat for a long time
Run Code Online (Sandbox Code Playgroud)
这个字符串的大小最多可达1.4mb.这个想法是,它是一堆学生记录,只是简单的管道分隔线.这是一个非常差的序列化方法.
一旦将这个庞大的字符串推送到客户端,它就会使用javascript再次沿着管道分成学生记录.
我已经计算了在客户端创建和拆分这些字符串需要多长时间.时间实际上非常好,我在几台不同的机器上看到的最慢的运行时间为10,000秒'学生记录'为0.2秒,最终字符串大小为~1.4mb.
我意识到这很奇怪,只是想知道使用javascript创建和拆分这么大的字符串是否有任何固有的问题?我不知道不同的浏览器如何实现他们的javascript引擎.我在'主要'浏览器上试过这个,但是不知道它会如何在每个版本的早期版本上执行.
是的,寻找任何评论,这比其他任何东西更有趣!
谢谢
java ×3
.htaccess ×1
android ×1
apache ×1
arrays ×1
common-lisp ×1
gcc ×1
iphone ×1
javascript ×1
jdbc ×1
postgresql ×1
regex ×1
stream ×1
wicket ×1
wordpress ×1