我很难理解你为什么需要asprintf.它在手册中说
的功能
asprintf()
和vasprintf()
是的类似物sprintf(3)
和vsprintf(3)
,除了它们分配一个字符串足够大以容纳包括终止空字节的输出,并且经由第一个参数的指针返回到它.应该传递此指针free(3)
以在不再需要时释放已分配的存储.
所以这是我试图理解的例子:
asprintf(&buffer, "/bin/echo %s is cool", getenv("USER"));
Run Code Online (Sandbox Code Playgroud)
如果缓冲区分配足够大的字符串而不是说char*=(字符串),那有什么区别
这个功能的用处是什么memset()
?
定义:将ptr指向的内存块的第一个num字节设置为指定值(解释为unsigned char).
这是否意味着硬编码内存地址中的值?
memset(&serv_addr,0,sizeof(serv_addr)
是我试图理解的例子.
有人可以用非常简单的方式解释一下吗?
我正在做一个聊天客户端,目前我有一个按钮,可以在点击时将数据显示到多行文本框.这是将数据添加到多行文本框的唯一方法吗?我觉得这是非常低效的,因为如果谈话变得非常长,那么字符串也会变得非常长.
private void button1_Click(object sender, EventArgs e)
{
string sent = chatBox.Text;
displayBox.Text += sent + "\r\n";
}
Run Code Online (Sandbox Code Playgroud) 我尝试更改片段的背景颜色,但发生了一个小问题.
public class MainActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,上面显示的是我为主类调用片段的XML文件的代码.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment
android:id="@+id/fragment1"
android:name="com.northreal.practice.FirstFragment"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#CBA" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
上面是主类(MainActivity)调用的main.xml布局.
public class FirstFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.main, parent, false);
}
}
Run Code Online (Sandbox Code Playgroud)
带有片段的XML文件上方调用此类.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BLAHHHH"
android:layout_gravity="center_vertical" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
上面的这个布局是由FirstFragment类夸大的
那么,为什么这实际上不会改变我的片段背景的颜色?
我正在使用这个参考:sed help:匹配和替换文字"\n"(不是换行符)
我有一个文件"test1.txt",其中包含一个字符串hello \ngoodbye
我使用此命令搜索并用实际的换行符替换"\n":
sed -i '' 's/\\n/\n/g' test1.txt
Run Code Online (Sandbox Code Playgroud)
但结果是:hellongoodbye.它只是将"\n"替换为"n"而不是实际的新行.这与/ t相同,它将留下"t"而不是选项卡.
''是针对MAC中未定义的错误:http://mpdaugherty.wordpress.com/2010/05/27/difference-with-sed-in-place-editing-on-mac-os-x-vs-linux /
更新:
我已经尝试了@ hek2mgl建议的两个命令:
sed -i 's/\\n/\n/g' test.txt
# Or:
sed -i'' 's/\\n/\n/g' test.txt
Run Code Online (Sandbox Code Playgroud)
虽然它们可能适用于Linux,但使用MAC OS时出现以下错误:
sed: 1: "test1.txt": undefined label 'est1.txt'
Run Code Online (Sandbox Code Playgroud)
不知道为什么我不能让这个工作.提前致谢.
参考:通配符捕获助手方法
它说要创建一个辅助方法来捕获通配符.
public void foo(List<?> i) {
fooHelper(i);
}
private <T> void fooHelper(List<T> l) {
l.set(0, l.get(0));
}
Run Code Online (Sandbox Code Playgroud)
仅在下面单独使用此函数不会产生任何编译错误,并且似乎以相同的方式工作.我不明白的是:你为什么不使用这个并避免使用助手?
public <T> void foo(List<T> l) {
l.set(0, l.get(0));
}
Run Code Online (Sandbox Code Playgroud)
我认为这个问题可以归结为:通配符和泛型之间有什么区别?所以,我去了这个:通配符和泛型之间的区别.它说要使用类型参数:
1)如果要对不同类型的方法参数强制实施某些关系,则不能使用通配符,必须使用类型参数.
但是,具有辅助函数的通配符实际上并不是这样吗?是不是通过设置和获取未知值来强制执行不同类型的方法参数的关系?
我的问题是:如果你必须定义需要在不同类型的方法args上建立关系的东西,那么为什么首先使用通配符然后使用辅助函数呢?
这似乎是一种结合通配符的hacky方式.
我正在关注一个教程,我注意到有一个未指定垂直或水平的线性布局.在另一个教程中我被告知它基本上是必需的......这两者都没有意义?这不好吗?这是由DID的另一个linearlayout包围的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add New"
android:onClick="onClick"/>
<Button
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete First"
android:onClick="onClick"/>
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 根据这个网站http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html 它说:
服务器:"敲门!"
客户:"谁在那里?"
服务器:"德克斯特."
客户:"德克斯特是谁?"
服务员:"德克斯特大厅里有冬青树枝."
客户:"呻吟."
我认为如果服务器正在侦听它正在等待敲门的端口,那么客户端就会敲门而服务器会说谁在那里.我也检查了其他网站,并看到了相同的客户端/服务器响应.
有人可以解释为什么不是这种情况?
我试图让两个人连接到服务器,服务器在它们之间建立连接.然后他们可以互相交谈.如果你看到评论"HEREEEEEEEEEEEEEEEEEE",我有一个thread.sleep,由于一些奇怪的原因,它与thread.sleep()一起使用,但如果我把它拿出来,只有一个人可以发送给他们的伙伴,如果有是没有thread.sleep();
PS它也适用于System.out.println
,而不仅仅是thread.sleep
我有更多的文件可以使用它,但加载它们很痛苦,并希望这是人们所知道的常见问题.
任何帮助表示赞赏.
import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
public class ConnectedClient extends Thread
{
private Socket cSocket; //Client's Socket
private PrintWriter cout; //write to Client
private BufferedReader cin; //Read from Client
private String cip; //Clients IP
private Socket pSocket; //Partner's Socket
private PrintWriter pout; //Write to partner
private String pip; //Partner's ip
private Server srvr; //Current server
public ConnectedClient(Socket skt, Server s)
{
try
{
//Client information
cSocket = skt;
cout = new PrintWriter(cSocket.getOutputStream(), …
Run Code Online (Sandbox Code Playgroud) 如果我做:
SELECT count(*) FROM XX where "date" >= '8-APR-2015' and "date" <= '8-APR-2016'
Run Code Online (Sandbox Code Playgroud)
它将返回许多行,但如果我这样做:
SELECT count(*) FROM XX where "date" >= '8-APR-2010' and "date" <= '8-APR-2016'
Run Code Online (Sandbox Code Playgroud)
它返回0.这怎么可能?如果有什么我会得到更多的行,因为我正在增加有效的检索范围.有任何想法吗?
编辑:
NLS_TIMESTAMP_FORMAT 'DD-MON-RR HH.MI.SSXFF
NLS_DATE_FORMAT DD-MON-RR
Run Code Online (Sandbox Code Playgroud)