我刚刚完成了我的 shell 解释器,但我认为我的管道实现是错误的。
它正在工作,像ls | cat -e工作这样的基本东西,但segmentation fault如果文件描述符超过 60 ko,我害怕可能性。当我做一个超过 60 ko 的文件的 cat 时,我也发现了一个无限循环。例如,如果 do a cat foo | cat -efoo 是一个长文件,则会发生无限循环。
或其他示例,当我执行cat /dev/urandom | cat -e此操作时不会向我显示任何显示,因此它首先执行cat /dev/urandom,然后执行cat -e.
这是我的代码:
int son(int *fd_in, int p[2], t_list *cmd, char **env)
{
(void)env;
dup2(*fd_in, 0);
if (cmd->act != ENDACT && cmd->act != LEFT && cmd->act != DLEFT)
dup2(p[1], 1);
close(p[0]);
execve(cmd->av[0], cmd->av, NULL);
return (-1);
}
t_list *execute_pipe(t_list *cmd, int …Run Code Online (Sandbox Code Playgroud) 我在文档中读到要用QTcpSocket发送数据包我可以使用该write方法.但是当我这样做时,我的服务器没有收到它.我需要打电话flush或waitForByteWritten发送它.
TCPClient::TCPClient(Client *babel , const std::string &hostname, unsigned short port, QObject *parent) : QObject(parent), client(babel), hostName(hostname), port(port), is_connected(false)
{
this->tcpSocket = new QTcpSocket(this);
connect(this->tcpSocket, SIGNAL(readyRead()),this, SLOT(readMessage()));
connect(this->tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError)));
connect(this->tcpSocket, SIGNAL(connected()), this, SLOT(connectReady()));
connect(this->tcpSocket, SIGNAL(disconnected()), this, SLOT(disconnectedReady()));
}
TCPClient::~TCPClient()
{
}
bool TCPClient::initiateService()
{
this->tcpSocket->connectToHost(this->hostName.c_str(), this->port);
this->tcpSocket->waitForConnected(5000);
}
void TCPClient::connectReady()
{
this->is_connected = true;
}
void TCPClient::disconnectedReady()
{
}
bool TCPClient::sendBabelPacket(Protocol::BabelPacket &packet)
{
if(this->tcpSocket->state() == QAbstractSocket::ConnectedState && is_connected)
{
std::cout << "writing ... …Run Code Online (Sandbox Code Playgroud) 我在ruby中做一个mysql查询,它给了我一个这样的字符串:
O:8:"stdClass":4:{s:7:"updates";a:1:{i:0;O:8:"stdClass":10:{s:8:"response";s:6:"latest";s:8:"download";s:65:"https://downloads.wordpress.org/release/fr_FR/wordpress-4.2.4.zip";s:6:"locale";s:5:"fr_FR";s:8:"packages";O:8:"stdClass":5:{s:4:"full";s:65:"https://downloads.wordpress.org/release/fr_FR/wordpress-4.2.4.zip";s:10:"no_content";b:0;s:11:"new_bundled";b:0;s:7:"partial";b:0;s:8:"rollback";b:0;}s:7:"current";s:5:"4.2.4";s:7:"version";s:5:"4.2.4";s:11:"php_version";s:5:"5.2.4";s:13:"mysql_version";s:3:"5.0";s:11:"new_bundled";s:3:"4.1";s:15:"partial_version";s:0:"";}}s:12:"last_checked";i:1439805713;s:15:"version_checked";s:5:"4.2.4";s:12:"translations";a:0:{}}
Run Code Online (Sandbox Code Playgroud)
我需要解析这一部分:s:6:"最新"以了解它是否是最新版本或升级版本.
我可以用哪种方法在ruby中做到这一点?我刚开始使用这种语言,这是我的第一个面向对象的语言,我只习惯做C语言.
我srand(time(NULL))在执行开始时有一个,然后我正在做
*pos_x = (rand() % HEIGHT);
*pos_y = (rand() % WIDTH);
Run Code Online (Sandbox Code Playgroud)
生成随机数.
当我手动运行程序时这很好用,但是当我用这个脚本在我的程序中吃午饭时:
#!/bin/bash
i="0"
team_number="0"
while [ $i -lt 30 ]
do
./lemipc `pwd` team_number
i=$[$i+1]
if (( $i % 10 == 0 ))
then
team_number=$[$team_number+1]
fi
echo "create process $i"
usleep 10000
done
Run Code Online (Sandbox Code Playgroud)
我总是为所有流程获得相同的数字.
我甚至试图添加一个usleep来解决这个问题,但它仍然无效.我得到这个例子:
97 51
create process 1
97 51
create process 2
97 51
create process 3
97 51
Run Code Online (Sandbox Code Playgroud)
其中97是pos_x和51 pos_y.
知道为什么吗?
例如,我希望layoutLeftMargin属性的值等于父窗口小部件的1/3。因此,当我调整窗口大小时,小部件的比例仍将保持不变。
否则,如果 QtDesigner 无法实现,我该如何用代码来实现呢?
我想使用Fuel和Result在JSON对象中获取响应主体。这是我的回调代码:
private fun LoginCallback(result: Result<Any, Exception>?)
{
mAuthTask = null
showProgress(false)
val (data, error) = result ?: return (Toast.makeText(applicationContext,
R.string.error_wrong, Toast.LENGTH_SHORT).show())
result.success {
val dataJson = data as Json
val user: SharedPreferences = getSharedPreferences(SAVED_USER_INFOS, 0)
val editor = user.edit()
editor.putString(SAVED_ACCESS_TOKEN, dataJson.obj().getString(SAVED_ACCESS_TOKEN))
editor.putString(SAVED_TOKEN_LIFETIME, dataJson.obj().getString(SAVED_TOKEN_LIFETIME))
editor.apply()
finish()
startActivity<MainActivity>()
}
result.failure {
showProgress(false)
mPasswordView!!.error = getString(R.string.error_incorrect_password)
mPasswordView!!.requestFocus()
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将数据(字节数组)转换为Json时,出现了以下错误:
java.lang.ClassCastException: byte[] cannot be cast to com.github.kittinunf.fuel.android.core.Json
Run Code Online (Sandbox Code Playgroud)
知道这可能来自哪里吗?在我改用另一种API路由之前,代码一直在工作。
我验证了JSON字符串存储在数据中。
API响应似乎是有效的。
Response : OK
Length : 220
Body : {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1OWVlZDU4NzIxMjcwMzc2MDUwZmY2MjAiLCJpYXQiOjE1MDkxNzcds0MjgsImV4cCI6MTU5NTU3NzQyOH0.VwAkLeKW2SL3bMDhQIs-0Pwx0kMg9xgzpDLxprbCUvQ","tokenExpirationDate":1509263828796}
Headers : (13)
null …Run Code Online (Sandbox Code Playgroud) 我想做一个OIS :: Keys(int)和std :: function的数组.
我有这个 :
struct UserCommands
{
OIS::KeyCode key;
std::function<bool(Worms *, const Ogre::FrameEvent& evt)> func;
};
UserInput input;
UserCommands usrCommands[] =
{
{
OIS::KC_A, std::bind(&input, &UserInput::selectBazooka)
},
};
Run Code Online (Sandbox Code Playgroud)
但是当我尝试编译它时,我有这个编译错误:
In file included from includes/WormsApp.hh:5:0,
/src/main.cpp:2:
/includes/InputListener.hh:26:25: error: could not convert ‘std::bind(_Func&&, _BoundArgs&& ...) [with _Func = UserInput*; _BoundArgs = {bool (UserInput::*)(Worms*, const Ogre::FrameEvent&)}; typename std::_Bind_helper<std::__is_socketlike<_Func>::value, _Func, _BoundArgs ...>::type = std::_Bind<UserInput*(bool (UserInput::*)(Worms*, const Ogre::FrameEvent&))>](&UserInput::selectBazooka)’ from ‘std::_Bind_helper<false, UserInput*, bool (UserInput::*)(Worms*, const Ogre::FrameEvent&)>::type {aka std::_Bind<UserInput*(bool (UserInput::*)(Worms*, const Ogre::FrameEvent&))>}’ to ‘std::function<bool(Worms*, …Run Code Online (Sandbox Code Playgroud) 我有这门课:
public class ImgurAPI
{
private string ClientId = "id";
private string ClientSecret = "secret";
private string BasicUri = "https://api.imgur.com/3/";
private HttpClient HttpClient = new HttpClient();
public ImgurAPI()
{
HttpClient.DefaultRequestHeaders.Add("Authorization", "Client-ID " + ClientId);
}
private async Task<HttpContent> doRequest(string urlQuery)
{
HttpResponseMessage response = await HttpClient.GetAsync(urlQuery);
return response.Content;
}
public HttpContent getImages(string search, int minSizeX, int minSizeY, string imageType, int page)
{
var url = BasicUri + "gallery/search/top/" + page.ToString() + "/";
url += "?q=" + search;
Task<HttpContent> task = …Run Code Online (Sandbox Code Playgroud) 我在 Cloud Run 上部署了一个映像,需要对 Kubernetes 集群内的服务进行 http 调用。
该服务只能从专用网络访问。
我在那篇文章中读到,我需要将云运行实例连接到我的私有 VPC,然后我需要创建一个将映射到我的 k8s 服务之一的负载均衡器。这将为我提供一个不会改变的外部 IP,我可以在 Cloud Run 中使用。
我理解对了吗?
那么,我如何为该外部 ip 分配主机名呢?我猜我需要更新 cloud run 使用的 dns?
我想为这个容器分配一个size_t:
std::vector <nts::Tristate *> _components;
Run Code Online (Sandbox Code Playgroud)
要做到这一点,我想投const size_t &给nts::Tristate *
this->_components[0] = static_cast<nts::Tristate *>(&value);
Run Code Online (Sandbox Code Playgroud)
但是我有以下错误:
error: invalid static_cast from type ‘const size_t* {aka const long unsigned int*}’ to type ‘nts::Tristate*’
this->_components[0] = static_cast<nts::Tristate *>(&value);
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
我得到一个HttpContent包含json响应
string jsoncontent = content.ReadAsStringAsync().Result;
Run Code Online (Sandbox Code Playgroud)
我发现该类JavaScriptSerializer可以为我反序列化字符串,但是这个类在UWP中不存在,在UWP中是否还有这样的类?还有另一种方法可以将JSON转换为dictionnary吗?
这是我的班级:
class AComponent : public nts::IComponent
{
public:
AComponent(const size_t &maxInputs, const size_t &maxOutputs, const size_t &value);
AComponent(nts::AComponent &);
virtual ~AComponent();
virtual nts::Tristate Compute(size_t pin_num_this = 1);
virtual void SetLink(size_t pin_num_this,
nts::IComponent &component,
size_t pin_num_target);
void setComponent(const size_t &components, nts::Tristate &state);
virtual void Dump(void) const;
nts::Tristate &getComponent(const size_t &pin);
protected:
std::vector <nts::Tristate *> _components;
size_t _maxInputs;
size_t _maxOutputs;
};
Run Code Online (Sandbox Code Playgroud)
当我尝试拨打这一行时:
this->_components[pin_num_this] =
&static_cast<nts::AComponent>(component).getComponent(pin_num_target);
Run Code Online (Sandbox Code Playgroud)
我发生了以下编译错误:
sources/AComponant.cpp:33:76: error: no matching function for call to ‘nts::AComponent::AComponent(nts::IComponent&)’
this->_components[pin_num_this] = &static_cast<nts::AComponent>(component).getComponent(pin_num_target);
Run Code Online (Sandbox Code Playgroud)
如果我实现构造函数,它就在这里.问题是,我不想操纵IComponent,我想操纵AComponent …
我正在尝试向我导入的类添加方法.
这是我的代码:
from pyrser.parsing import node
def to_dxml(self):
return "test"
node.Node().to_dxml = to_dxml
tree = node.Node()
tree.ls = [1, 2.0, "titi", True, [2, 3, 4, [3, [3, 4]], 5]]
tree.dct = {"g":1, "y":2, "koko":{'D', 'T', 'C'}}
tree.aset = {'Z', 'X', 'T', 'U'}
tree.ablob = b'\xFF\xaa\x06Th -}'
print(tree.to_dxml())
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我得到了
AttributeError: 'Node' object has no attribute 'to_dxml'
Run Code Online (Sandbox Code Playgroud)
知道为什么它不起作用吗?
c++ ×4
.net ×2
c ×2
json ×2
qt ×2
uwp ×2
android ×1
c++11 ×1
dynamic-cast ×1
kotlin ×1
kubernetes ×1
linux ×1
pointers ×1
polymorphism ×1
python ×1
ruby ×1
sockets ×1
static-cast ×1
stl ×1
unix ×1