- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用共享内存在树莓派上编写应用程序。我在自己编写的共享内存库中使用函数 strstr() 。当我使用 clang++ 在 OS X 上编译库时,我没有收到任何错误。如果我在我的 raspberry pi 上编译它,我会收到错误消息:“strstr”未在此范围内声明。
我尝试更新我的树莓派但没有成功,你能给我任何提示或解决方案吗?
标题数据
#ifndef SHAREDMEMORY_H
#define SHAREDMEMORY_H
#include <string>
#include <cstdlib>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <iostream>
#define MAX_SERVICES 99
/**
* Datei mit der Datenbank.
*/
#define FILEPATH "database.dat"
/**
* Anzahl der Zeichen in der
* Datenbank.
*/
#define CHARACTERS 2500
/**
* Größe der Datenbank.
*/
#define FILESIZE (CHARACTERS*sizeof(char))
class SharedMemory {
public:
/**
* Constructor
*/
SharedMemory();
/**
* Desctructor
*/
~SharedMemory();
/**
* Method to open file
* @param string: Path to file, has to exist
* @param int: for reading 0
* for writing 1
* @return bool: true on success
* false on error
*/
bool openFile( std::string, int );
/**
* Method to map file to memory
* @param string: Path to file, has to exist
* @param int: for reading 0
* for writing 1
* @return bool: true on success
* false on error
*/
bool mappingFile( int );
/**
* Method to remove file from memory
* @return bool: true on success
* false on error
*/
bool unmapFile();
/**
* Method to write information to file
* @param string: data to write
* e.g. string="#1:127.0.0.1:8000", #number range 0-99.
* @return bool: true on success
* false on error
*/
bool set( std::string );
/**
* Method to read information from file
* @param string: need to cointains id, if success
* then contains info from id.
* e.g. string="1", number range "0"-"99".
* @return bool: true on success
* false on error
*/
bool get( std::string& );
private:
/**
* Datei-Deskriptor.
*/
int fd;
/**
* Zeiger auf Dateiinhalt.
*/
char *mapPointer;
/**
* Path to file
*/
std::string filePath;
};
#endif /* SHAREDMEMORY_H */
Cpp-Datei
#include "SharedMemory.h"
SharedMemory::SharedMemory() { }
SharedMemory::~SharedMemory() { }
bool SharedMemory::openFile( std::string _path, int mode ) {
if ( mode ) {
fd = open( _path.c_str(), O_RDWR, (mode_t)0600 );
} else {
fd = open( _path.c_str(), O_RDONLY, (mode_t)0600 );
}
if ( fd == -1 ) {
return false;
}
return true;
}
bool SharedMemory::mappingFile( int mode ){
void* tmpPointer;
if ( mode ) {
tmpPointer = mmap( 0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );
} else {
tmpPointer = mmap( 0, FILESIZE, PROT_READ, MAP_SHARED, fd, 0 );
}
if( tmpPointer == MAP_FAILED ) {
close( fd );
return false;
}
mapPointer = (char*) tmpPointer;
return true;
}
bool SharedMemory::unmapFile() {
int ret = munmap(mapPointer, FILESIZE);
close( fd );
if ( ret == -1 ) {
return false;
}
return true;
}
bool SharedMemory::set( std::string s ) {
/**
* Filter id, find the id in the file.
* If Values exist and id is valid, insert value
* -> if value not exists, insert "No_Service".
* if given id is invalid, return false
*/
int mid = s.find( ";" );
int begin = s.find( "#" );
std::string id = s.substr( begin + 1, mid - begin);
std::string info = s.substr( mid + 1, s.length() );
if ( info == "" ) {
info = "No_Service";
}
char* i = strstr( mapPointer, id.c_str() );
while ( *i++ != ';' );
for ( auto x: info ) {
*i++ = x;
}
for ( int j = 0; j < ( 20 - info.length() ); ++j ) {
*i++ = ' ';
}
return true;
}
bool SharedMemory::get( std::string& id ){
/**
* Filter id, find the id in the file.
* save data in string s.
*/
int tmp;
try {
tmp = stoi( id );
} catch ( ... ) {
id = "No_Service";
return false;
}
if ( tmp > 100 || tmp < 1 ){
id = "No_Service";
return false;
}
id += ";";
char* i = strstr( mapPointer, id.c_str() );
while ( *i++ != ';' );
id = "";
do {
id += *i++;
} while( *i != ' ' && *i != ';' );
if ( id == "No_Service" ){
return false;
}
return true;
}
最佳答案
尝试包含 cstring
(并调用 std::strstr
)或包含 string.h
。
关于c++ - 错误 : 'strstr' was not declared in this scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33633042/
我在这里有我的 javascript 代码: define(['controllers/controllers', 'services/alerts'], function(module) {
的意义是什么scope = scope-token *( SP scope-token ) scope-token = 1*( %x21 / %x23-5B / %x5D-7E ) 在 RFC6749
我是 AngularJS 的新手。我试图找出这两个 Controller 定义之间的区别: app.controller('simpleController', ['$scope', function
似乎所有 Guice 的开箱即用 Scope 实现本质上都是基于线程的(或完全忽略线程): Scopes.SINGLETON和 Scopes.NO_SCOPE忽略线程并且是边缘情况:全局范围和无范围。
如果这个问题涉及的是一个常见问题,我很抱歉,但我发现这个问题非常抽象,并且无法真正为其构建一个好的 Google 搜索词。 我试图理解并找到 Maven 中提供的依赖项的用例。我的想法是这样的: 假设
假设我有以下 Controller angular.module('scopeExample', []) .controller('MyController', ['$scope', func
当前在TmThemeEditor上注册的243种配色方案中, 我注意到几乎没有人使用范围选择器运算符。 对于以下情况,运算符非常有用: (text.html | text.xml) & (meta.t
我有一些行为不符合预期的代码......我在 AngularJS Controller 中有一个事件监听器,如下所示: $scope.$on("newClipSelected", function(e
首先,如果帖子太长,我深表歉意。另外,为了以防万一这会以某种方式干扰您可能给我的答案,我不会以通常的方式定义我的 Controller 。相反,我关注http://www.technofattie.c
我有一个模式,其中许多项目类型都是“可编辑的”。这意味着我有很多模板(每种可编辑项目类型一个),这些模板期望具有唯一的字段,但具有通用功能(编辑、保存、取消编辑、删除等)。这些常见功能导致 Contr
$evalAsync 和 $applyAsync 之间有什么区别?我的理解是,当我从指令中使用 $evalAsync 时,表达式将在浏览器呈现之前进行计算。 举个例子,如果我想滚动到页面上的特定位置但
我试图为一个 $scope 变量提供另一个 $scope 变量的值。有人能告诉我出了什么问题吗?查看简单的 plunker 了解详细信息: http://plnkr.co/edit/TlKnd2fM5
我有以下一段 Angular 代码 $scope.prepare = function(){ $scope.elems = [1,2,3]; }; $scope.action = functio
我正在关注 Angularjs 的官方教程,但我陷入了第 2 步。 这是一个片段,我不明白 $scope:scope 的含义, describe('PhoneListCtrl', function()
根据文档, Global: Component is shared among all users. Session: Separate instances of the component are
显示作用域变量,类似于 Angularjs 中的 ng-repeat 元素 这些是我的范围变量 $scope.published = true; $scope.count = 3; 我还有一个名为 l
我是 Angular 的新手,我想在普通的 javascript 中做一些非常简单的事情,但我无法找到如何在 Angular 中正确地做到这一点! 我想设置一个通用函数来清除输入文本字段: 我有这个
在article中发现了这样一个idea : Notice how the value function takes the scope as parameter (without the $ in
注释部分将位于 $scope.$on 下。我需要将 options 返回到我保存 $scope.$emit 的地方。请帮助!!! if (gridConfig.Batch) {
我有一个带有 2 个作用域的 Controller : app.controller('search', function($scope) { $scope.value1 = '';
我是一名优秀的程序员,十分优秀!