return SSL_pending(c->ssl);
时间: 2024-04-26 13:22:22 浏览: 12
`SSL_pending(c->ssl)` 是一个OpenSSL库函数,用于检查当前SSL连接中是否有未读取的数据。它的作用是查询SSL会话内部的缓冲区,看是否有数据等待读取。
在使用OpenSSL库进行网络编程时,可以通过该函数检查当前SSL连接中是否有未读取的数据,以便及时处理。例如,在编写一个服务器程序时,可以在每次收到客户端请求时调用该函数来检查是否有未读取的数据,如果有,则及时读取数据并处理,否则继续等待新的请求。
该函数的返回值是一个整数,表示当前SSL连接中未读取的数据的字节数。如果返回值为0,则表示当前没有未读取的数据。
相关问题
Status TableBuilder::Finish() { Rep* r = rep_; Flush(); assert(!r->closed); r->closed = true; BlockHandle filter_block_handle, metaindex_block_handle, index_block_handle; // Write filter block if (ok() && r->filter_block != nullptr) { WriteRawBlock(r->filter_block->Finish(), kNoCompression, &filter_block_handle); } // Write metaindex block if (ok()) { BlockBuilder meta_index_block(&r->options); if (r->filter_block != nullptr) { // Add mapping from "filter.Name" to location of filter data std::string key = "filter."; key.append(r->options.filter_policy->Name()); std::string handle_encoding; filter_block_handle.EncodeTo(&handle_encoding); meta_index_block.Add(key, handle_encoding); } // TODO(postrelease): Add stats and other meta blocks WriteBlock(&meta_index_block, &metaindex_block_handle); } // Write index block if (ok()) { if (r->pending_index_entry) { r->options.comparator->FindShortSuccessor(&r->last_key); std::string handle_encoding; r->pending_handle.EncodeTo(&handle_encoding); r->index_block.Add(r->last_key, Slice(handle_encoding)); r->pending_index_entry = false; } WriteBlock(&r->index_block, &index_block_handle); } // Write footer if (ok()) { Footer footer; footer.set_metaindex_handle(metaindex_block_handle); footer.set_index_handle(index_block_handle); std::string footer_encoding; footer.EncodeTo(&footer_encoding); r->status = r->file->Append(footer_encoding); if (r->status.ok()) { r->offset += footer_encoding.size(); } } return r->status; }在这段代码里 GenerateFiler()函数被调用了吗
在这段代码中,`GenerateFilter()` 函数没有被直接调用。但是,如果在创建 `TableBuilder` 对象时设置了过滤器策略 (`options.filter_policy`),则在 `TableBuilder::Finish()` 函数中会调用过滤器的生成和写入操作,这个操作会间接调用 `FilterBlockBuilder::GenerateFilter()` 函数。
具体来说,如果设置了过滤器策略,则在 `TableBuilder::Finish()` 函数中会调用 `filter_block_->Finish()` 函数生成并返回过滤器数据,然后在 `WriteRawBlock()` 函数中将其写入磁盘,这个过程会间接调用 `FilterBlockBuilder::GenerateFilter()` 函数。这个过程可以在上面的代码中看到:
```c++
// Write filter block
if (ok() && r->filter_block != nullptr) {
WriteRawBlock(r->filter_block->Finish(), kNoCompression,
&filter_block_handle);
}
```
因此,虽然 `GenerateFilter()` 函数没有被直接调用,但是它的代码实际上被包含在这个写入操作中。
ALTER TABLE 'soa_t_corp_order_acception' ADD "screen_status" VARCHAR ( 64 ) DEFAULT NULL COMMENT "筛选状态, PENDING-> 未接单 | ACCEPTED->已接单 | ACCEPTED_SYNC->已接单发单中心未接单 | DISABLED -> 已作废"; 错哪里了
在 SQL 语句中,表名需要使用反引号(`)来包裹,而不是单引号(')。因此,正确的 SQL 语句应该是:
```
ALTER TABLE `soa_t_corp_order_acception` ADD `screen_status` VARCHAR(64) DEFAULT NULL COMMENT '筛选状态, PENDING->未接单 | ACCEPTED->已接单 | ACCEPTED_SYNC->已接单发单中心未接单 | DISABLED->已作废';
```
另外,建议在 VARCHAR 类型的括号中指定字段的长度,例如 VARCHAR(64),这样可以避免字段长度不够导致的截断问题。