有没有办法恢复或撤消git pull,以便我的源/ repos将进入git pull之前的旧状态?我想这样做是因为它合并了一些我不想这样做的文件,但只合并了其他剩余的文件.所以,我想要恢复这些文件,这可能吗?谢谢 :)
编辑我想撤消git merge以澄清.看到一些答案后,我就这样做了
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
Run Code Online (Sandbox Code Playgroud)
现在,我该怎么办?做的git reset --hard
还行吗?我不想再把它搞砸了,所以要求详细的步骤?
我在C++程序中为这样的边界分配值:
#include <iostream>
using namespace std;
int main()
{
int array[2];
array[0] = 1;
array[1] = 2;
array[3] = 3;
array[4] = 4;
cout << array[3] << endl;
cout << array[4] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
程序打印3
和4
.应该是不可能的.我正在使用g ++ 4.3.3
这是编译和运行命令
$ g++ -W -Wall errorRange.cpp -o errorRange
$ ./errorRange
3
4
Run Code Online (Sandbox Code Playgroud)
只有在分配时才array[3000]=3000
会给我一个分段错误.
如果gcc没有检查数组边界,我怎么能确定我的程序是否正确,因为它可能会导致一些严重的问题?
我用上面的代码替换了
vector<int> vint(2);
vint[0] = 0;
vint[1] = 1;
vint[2] = 2;
vint[5] = 5;
cout << vint[2] << endl;
cout …
Run Code Online (Sandbox Code Playgroud) 我有这样的事情:
char *current_day, *current_time;
system("date +%F");
system("date +%T");
Run Code Online (Sandbox Code Playgroud)
它在stdout中打印当前日期和时间,但我想获取此输出或将它们分配给current_day
和current_time
变量,以便稍后我可以使用这些值进行一些处理.
current_day ==> current day
current_time ==> current time
Run Code Online (Sandbox Code Playgroud)
我现在能想到的唯一解决方案是将输出定向到某个文件,然后读取文件,然后将日期和时间的值分配给current_day
和current_time
.但我认为这不是一个好方法.还有其他短而优雅的方式吗?
我们使用malloc在C中分配内存,在C++中使用new分配内存.我知道分配的内存必须在C中使用free并在C++中使用free来释放或返回给OS.如果在分配内存后忘记使用free/delete,则表示存在内存泄漏.
现在,我的问题是,这个内存是否仅在程序执行期间泄漏; 或者它是永久性泄漏/丢失还是重新启动系统后再次获得?实际上内部过程是什么?内存泄漏/丢失究竟意味着什么?
如果有人能够详细解释这个问题或者给我一些不错的参考资料,我将非常感激.
更新1
在阅读了一些答案之后,我了解到程序终止后内存会返回给OS /系统,如果是这样,为什么每个人都需要关心内存泄漏,为什么防止内存泄漏非常重要?
更新2
因此,应该防止内存泄漏,以便系统不会因为缺乏足够的内存来分配崩溃?
更新3
因此,在阅读完所有答案之后,我意识到内存泄漏是安静的重要问题,以防止系统崩溃.但是,对于像我这样的初学者,我怎么能确定我的程序是否完全没有内存泄漏.我尝试自由,删除如果我使用malloc,新的但有时,它会变得混乱.是否有任何工具或方法可以用来知道我的程序是否有任何内存泄漏?
更新4
在阅读答案之后,我现在已经了解了内存泄漏代码的重要性,更少使用新/删除,更多地使用STL,学习了新的东西,如RAII,valgrind和良好的编程实践.谢谢大家 :)
我看到有人用这个
void methodA(const int*& var);
Run Code Online (Sandbox Code Playgroud)
在一个答案中,但无法理解论证的含义.
据我所知:
const int var
=> const值,无法更改
const int* var
=>指向int的指针,即const,即*var无法更改,但var可以更改
const int& var
=>引用const int,即var的值不能改变
什么const int*& var
意思,const int& *var
也有可能?
你能不能举一些例子,比如可以做什么,用什么做不了?
更新:
我不确定我是否正确思考,但我开始认为引用是作为参数传递的变量的别名,所以const int*p; methodA(p)=>这里我们将p作为const int*传递但是我们不知道这是通过值传递还是直到我们看到方法A的定义,
所以如果methodA就像这个方法A(const int*&p2)==>这里p2是p的另一个名字,即p和p2从现在开始是相同的,如果methodA(const int*p2)==>这里p2被传递作为值,即p2只是本方法的局部,
如果我错误的想法,请纠正我?如果是,我可能需要更多地研究这个问题?你能指点一些不错的参考资料吗?
更新2如果像我这样的初学者一定要多了解这件事情,你可以使用C++东方电气/ CDECL程序,我刚刚发现非常有用从这里
$ c++decl
Type `help' or `?' for help
c++decl> explain const int&* p
declare p as pointer to reference to const int
c++decl> explain const int*& p
declare p as reference to pointer to const …
Run Code Online (Sandbox Code Playgroud) 我正在编辑别人的脚本,我看到他/她\c
经常使用这个
echo "bla bla \c"
Run Code Online (Sandbox Code Playgroud)
使用时只需打印
bla bla \c
Run Code Online (Sandbox Code Playgroud)
屏幕上.
所以,我想知道为什么要使用它或者可能是我错过了什么,因为它什么都不做?我检查了逃脱角色,我也没有找到任何这样的东西.在shell脚本中是否有特殊用途的c,主要是在bash和korn shell中?
我正在编写简单的客户端 - 服务器程序.
客户端使用UDP或TCP向服务器发送一些消息.服务器必须能够支持UDP和TCP.
如果客户端使用UDP发送消息,则客户端中的方法调用序列socket(),bind(),sendto(),recvfrom(),close()
和服务器中的方法调用序列socket(),bind(),sendto(),recvfrom(),close()
.
如果它使用TCP,则服务器中的呼叫顺序为
socket(),bind(),listen(),accept(),send(),recv(),close()
.在客户端是
socket(),bind(),connect(),send(),recv(),close()
在我的程序中,用户/客户端在开始时选择他想要使用UDP或TCP的内容.所以,我的主要问题是如果客户端使用TCP或UDP发送消息,我如何知道或区分服务器端.如果它使用TCP,我必须调用listen(),accept(),send(),recv(),如果它使用UDP,我不调用listen(),accept()但调用sendto()和recvfrom() .
那么,我如何在开始时区分/了解这一点,以便我可以进行适当的函数调用.
谢谢.
我和我的朋友正在讨论,并意识到这可能是提出这个问题的最佳地点吗?
一种新语言是如何诞生的?这个新语言必须用一些旧语言OLD编写(例如C++在初始阶段用C语言编写),或者这是如何创建的?而且,如果没有编译器,这种语言NEW如何才能自行运行?那么,必须要有一些编译器吗?谁为它编写编译器?
那么,所有这些如何协同工作,新语言及其编译器,新语言与旧基础语言的关系如何?
我想从X网站保存/下载pdf,然后将所有这些pdf合并为一个,这样我就可以很容易地一次看到所有这些pdf.
我做了什么,
从网站获取pdf
wget -r -l1 -A.pdf --no-parent http:// linktoX
将pdfs合二为一
gs -dNOPAUSE -sDEVICE = pdfwrite -sOUTPUTFILE = Combined_ date +%F
.pdf -dBATCH file1.pdf file2.pdf file3.pdf
我的问题是,我想在一个脚本中自动化整个这个,所以我不必每天都这样做.这里每天在X中添加新的pdf.
那么,如何在不提供所有pdf的完整列表的情况下执行上面的第2步,我尝试file*.pdf
在第2步中执行; 但它以随机顺序组合了所有pdf.
接下来的问题是,文件*.pdf的总数每天都不一样,有时5个pdf有时10个......但是好的是它命名为file1.pdf file2.pdf ...
所以,我需要一些帮助来完成上面的步骤2,这样所有的pdf都按顺序组合,我不必明确给出每个pdf的名称
谢谢.
更新:这解决了这个问题
pdftk `ls -rt kanti*.pdf` cat output Kanti.pdf
Run Code Online (Sandbox Code Playgroud)
我做了ls -rt,首先下载了file1.pdf,然后是file2.pdf等等......只是在ls -t中将file20.pdf放在start中,将file1.pdf放在最后...
我正在尝试做一些套接字编程,编写一个简单的客户端 - 服务器程序.但是当我尝试编译程序时,我收到了这个错误.
gcc -o showip showip.c -lnsl -lsocket -lresolv
showip.cc: In function ‘int main(int, char**)’:
/usr/bin/ld.real: cannot find -lsocket
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我尝试安装lib这样做,
sudo apt-get install happycoders-libsocket-dev
Run Code Online (Sandbox Code Playgroud)
当我编译时,我仍然得到同样的错误.
我怎么能摆脱这个?谢谢.