我是Linux内核编程的新手,我正尝试在我的Linux Ubuntu 18.04系统中添加一个新的syscall,在其中使用kstat_create和kstat_install方法,但似乎找不到对应的头文件任何地方。在Oracle网站上,这些方法的包含行是sys / types.h和sys.kstat.h,我发现是linux / types.h而不是sys / types.h,但是在上述方法的任何地方都没有kstat.h被定义。 如果你们能帮助我,我将不胜感激。 预先感谢
答案 0 :(得分:0)
使用apt-file搜索您丢失的文件。
这些是我来自ubuntu 16.04的搜索结果。对于18.04,它们可能略有不同,但这是您可以找到它们的方式。
sudo apt-get install apt-file
apt-file update
$ apt-file search kstat.h
db5.3-doc: /usr/share/doc/db5.3-doc/api_reference/C/lockstat.html
db5.3-doc: /usr/share/doc/db5.3-doc/api_reference/CXX/lockstat.html
db5.3-doc: /usr/share/doc/db5.3-doc/upgrading/upgrade_4_4_lockstat.html
libace-dev: /usr/include/ace/os_include/os_kstat.h
libzfslinux-dev: /usr/include/libspl/sys/kstat.h
python-scipy-doc: /usr/share/doc/python-scipy-doc/h
答案 1 :(得分:0)
将此export class ExampleView extends DOMWidgetView {
initialize(){
const view = this;
interface AppProps{
}
interface AppState{
value:any
}
class Hello extends React.Component<AppProps,AppState> {
constructor(props:any){
super(props);
this.state = {
value: view.model.get("value")
}
this.clickHandler = this.clickHandler.bind(this);
}
onChange(model:any){
this.setState(model.changed);
}
componentDidMount(){
view.listenTo(view.model,"change",this.onChange.bind(this));
}
render(){
return <div><h1>Hello {this.state.value}</h1><button onClick={this.clickHandler}>Submit</button></div>
}
clickHandler(){
console.log("clicked")
// this.state = {value:"set to something else"}
this.setState(state => ({
value: "something else"
}));
console.log(view) // VM1302:1 Uncaught ReferenceError: view is not defined
}
}
const $app = document.createElement("div");
const App = React.createElement(Hello);
ReactDOM.render(App,$app);
view.el.append($app);
}
}
包含在kstat_create标头的代码中。